为什么 su 到 root 而不是以 root 身份登录?

the*_*ade 33 linux login root sudo

我经常听到 su 到 root 比直接以 root 用户登录更好(当然人们也说使用 sudo 更好)。我从来没有真正理解为什么一个比另一个更好,洞察力?

Dan*_*ley 43

推断是仅susudo在需要时。

大多数日常任务不需要 root shell。因此,最好使用非特权 shell 作为默认行为,然后仅在需要执行特殊任务时才提升为 root。

通过这样做,您可以减少您使用的任何应用程序的危险错误(错误的脚本、错位的通配符等)和漏洞的范围。尤其是那些连接到 Internet 的 - 请参阅古老的格言“不要以 root 身份使用 IRC”

sudo 通常推荐使用它,因为它允许您细粒度和审核此类权限的使用。

通过观察这些做法,您还可以禁用远程 root 登录。这增加了任何潜在攻击者的进入门槛,因为他们需要破坏作为“wheel”组成员且理想情况下仅由 SSH 公钥授权的普通用户帐户,然后是 root 帐户本身。

  • 因为鉴于全世界都知道用户名('root'),这只是一个找出密码的问题。他们可以通过蛮力做到这一点并接管您的计算机。 (5认同)
  • sudo 的另一个优点:记录已执行的命令。 (2认同)

ego*_*gry 27

您应该从远程禁用 root 访问,这样攻击者就无法在不先危及用户然后升级为 root 的情况下破坏 root。我们只在控制台启用 root 访问。

此外,它还创建了问责制。:)


Tim*_*Tim 15

主要原因是创建审计跟踪。如果您需要以普通用户身份登录系统,然后使用 su,则可以跟踪谁对给定操作负责。


Jur*_*873 10

sudo 还会自动将每个命令记录到 syslog,您可以定义每个用户可以使用的命令。

  • 至于日志记录:对于以“sudo”开头的每个命令都是如此,但在使用 sudo 提升到 root shell 的情况下,命令仅记录在传统区域(特别是 shell 历史记录)中。 (3认同)
  • 事实上,`sudo vim foo.txt` 然后从 vim 中删除到一个 shell 会给你一个没有常规 sudo 日志记录的 root shell。 (2认同)

Zen*_*ham 9

另一个很好的理由:当通过 sudo 提升到 root 时,用户使用他们自己的凭据进行身份验证,这意味着他们不一定必须获得 root 密码,这样当有人离开你的组织时更容易锁定。