将 sudo 权限分配给用户而不是使用 root 的实际好处是什么?

JM4*_*JM4 25 linux sudo

我对服务器管理还很陌生,我看到很多网站建议为 root 用户创建的用户分配 sudo 权限,并为 root 用户提供一个非常长的密码以增强安全性。

但是,如果新创建的用户可以执行与 root 用户相同的功能,那么这样做的实际好处是什么?

vor*_*aq7 48

使用sudo过度分发 root 密码有几个好处。没有特定的顺序:

  • 您不会泄露您的 root 密码
    作为一般规则,如果有人离开您的公司并且他们知道 root 密码,您现在必须到处更改这些密码。通过适当的配置管理,这是一个小烦恼。没有它,这是一项艰巨的任务。

  • 您不会泄露王国的密钥,
    sudo允许您指定用户可以运行的受限命令列表,因此如果您决定 Alice 只需要停止和启动 Apache 的能力,但 Bob 需要完全的 root 权限,您可以设置他们相应地。

  • 您可以集中管理授权 sudo支持 LDAP 配置,这意味着您公司中的每个系统都可以查看中央 LDAP 服务器以确定允许谁做什么。
    需要授权(或取消授权)某人?更改 LDAP 中的 sudoers 配置,您的所有系统都会立即更新。

  • 这里有一个审计跟踪
    与被允许做用户除外sudo su -sudo sh或等价的东西,sudo会产生哪些用户已运行哪些命令的审计线索。
    (它还会生成一个给自己一个未记录的 root shell 的人的列表,因此您可以将手指指向他们并发出不赞成的嘶嘶声。)

  • sudo是不是仅仅根更多的好 每个人都集中在sudo作为一种的东西作为每用户,但这不是所有它的好。
    假设 Alice 负责特定的软件构建,但 Bob 也应该能够运行构建脚本。您可以在 sudoers 中给 Bob 一个条目,让他以 Alice 的用户身份运行构建脚本。(是的,当然,有更好的方法来处理这种特殊情况,但原则Let user A run a program as user B可能很有用......)。
    当您执行此操作时,您还可以获得我上面提到的所有相同的审计跟踪好处......

  • @DietrichEpp 在这种情况下,`NOEXEC` 标签会有所帮助。 (4认同)
  • @JM4 一致性,以及未来某一天在更大环境中工作时的良好实践。从实际的角度来看,除非你在物理控制台上修复一些被严格控制的东西,否则你永远不应该直接以 root 身份登录,所以 `sudo` 与 `su` 是学术上的区别 - 你将不得不跳过一个箍或另一个。使用 `sudo` 为您提供了在可行的情况下行使 [最小特权原则](http://en.wikipedia.org/wiki/Principle_of_least_privilege)(我的最后一点)的机会,这总是需要认真考虑的事情。 (3认同)
  • 请注意,许多交互式命令将允许用户绕过审计跟踪。例如,任何可以`sudo vi` 的用户都可以`:! bash` 一次进入 vi。 (3认同)
  • 此外,使用 [visudo](http://www.gratisoft.us/sudo/visudo.man.html) 编辑您的 sudoers 文件。 (2认同)

Mic*_*ton 17

主要区别在于用户sudo使用自己的密码进行身份验证,而使用suroot 登录或直接 root 登录则使用 root 密码。

这意味着您不必与all 和 sundry共享 root 密码,并且如果您将来需要禁用一两个用户的 root 访问权限,您可以为他们禁用它,而不必更改根密码。

sudo还能够限制每个用户可以以 root 身份运行哪些命令,因此如果特定用户不需要完全 root 访问权限,则他们只能访问他们需要执行的任务。