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

我对服务器pipe理相当陌生,而且我看到很多站点build议将sudo权限分配给root用户创build的用户,并为root用户提供一个非常长的密码,以提高安全性。

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

使用sudo发放root密码有几个好处。 没有特别的顺序:

  • 你没有给出你的root密码
    作为一般规则,如果有人离开你的公司,他们知道root密码,你现在必须改变这些密码。 通过适当的configurationpipe理,这是一个小小的烦恼。 没有它,这是一个巨大的琐事。

  • 你没有放弃王国的钥匙
    sudo允许你指定一个用户可以运行的命令的限制列表,所以如果你决定Alice只需要停止和启动Apache的能力,但是Bob需要完全的root权限,你可以相应地设置它们。

  • 您可以集中pipe理授权 sudo支持LDAPconfiguration,这意味着您公司的每个系统都可以查看中央LDAP服务器来确定谁可以做什么。
    需要授权(或取消授权)某人? 更改LDAP中的sudoersconfiguration,并且所有的系统一次更新。

  • 有审计线索
    除了允许用户执行sudo su -sudo sh或类似操作的用户之外, sudo将为用户运行哪些命令生成审计logging。
    (它也会产生一个给自己一个没有登陆的root shell的人的名单,所以你可以用手指着他们,并且不赞成地发出嘘声。)

  • sudo不仅仅是好的根源每个人都把注意力集中在sudo ,作为su用户的一种方式,但是这并不是一件好事。
    说爱丽丝是负责特定的软件构build,但鲍勃应该也能够运行构build脚本。 你可以给Bob一个sudoers条目,让他可以像Alice的用户一样运行构build脚本。 (是的,当然,有很多更好的方法来处理这个特定的情况,但Let user A run a program as user B的原理可能是有用的…)。
    当你这样做的时候,你也可以得到和上面提到的相同的审计线索的好处…

主要区别在于用户使用自己的密码对sudo进行身份validation,而使用su或直接rootlogin时使用root密码。

这意味着您不必与所有人共享root密码,并且如果您将来需要禁用一个或两个用户的root访问权限,则可以将其禁用,而不必更改根密码。

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

除了有效的答案之外,不要忘记以root身份login的用户可能会在每个命令中破坏系统。 如果你在做一些有潜在危险的事情之前强迫他们inputsudo,至less你要让他们意识到在做特定命令之前他们需要仔细检查。

是的 – 从控制和伐木的angular度来看,sudo要好得多。

例如 – 如果你是在日志中捕获的唯一事件是你su'ing。 之后的任何事情都以root身份进行。 如果你曾经在Unix / Linux上看过日志,你就知道root做了一些东西。

另一方面,Sudo将原始用户的所有内容logging下来。

使用sudo会使恶意用户难以访问系统。 当有一个解锁的root帐户时,恶意用户在启动之前就知道她想要破解的帐户的用户名。 当root帐户被locking时,用户必须确定用户名和密码才能进入系统。