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

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

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

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

答案1

使用sudoroot 密码有几个好处。以下是一些好处(无先后顺序):

  • 你没有泄露你的 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很有用......)。
    当您这样做时,您还可以获得我上面提到的所有相同的审计跟踪好处......

答案2

主要区别在于用户sudo使用以下方式进行身份验证:他们自己的密码,而使用su或直接 root 登录时则使用 root 密码。

这意味着你不必与各式各样,如果您将来需要禁用一个或两个用户的 root 访问权限,您只需为他们禁用它,而不必更改 root 密码。

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

答案3

除了给出的答案是有效的之外,不要忘记以 root 身份登录的用户可能会在执行每个命令时破坏系统。如果您强迫他们在执行可能危险的事情之前输入 sudo,至少您会让他们意识到在执行特定命令之前需要仔细检查。

答案4

使用 sudo 使恶意用户更难访问系统。当 root 帐户未锁定时,恶意用户在开始之前就知道她想要破解的帐户的用户名。当 root 帐户被锁定时,用户必须确定用户名和密码才能闯入系统。

相关内容