我经常听说 su 到 root 比直接以 root 用户身份登录更好(当然也有人说使用 sudo 更好)。我从来没有真正理解为什么一个比另一个更好,有见解吗?
答案1
推论是仅当需要时才su
这样做sudo
。
大多数日常任务不需要 root shell。因此,最好将非特权 shell 作为默认行为,然后仅在需要执行特殊任务时才提升为 root。
通过这样做,您可以减少您使用的任何应用程序出现危险错误(错误的脚本、放错通配符等)和漏洞的可能性。尤其是那些连接到互联网的应用程序 - 参见那句老话“不要以 root 身份进行 IRC 操作”。
sudo
经常被推荐,因为它允许您细粒度地审核此类权限的使用。
通过遵守这些做法,您还可以禁用远程 root 登录。这增加了任何潜在攻击者的进入门槛,因为他们需要先攻陷属于“wheel”组且理想情况下仅由 SSH 公钥授权的普通用户帐户,然后再攻陷 root 帐户本身。
答案2
您应该禁用远程 root 访问权限,这样攻击者就无法在不先危及用户然后升级到 root 的情况下危及 root 权限。我们仅在控制台上启用 root 访问权限。
此外,它还能创造责任。:)
答案3
主要原因是创建审计跟踪。如果您需要以普通用户身份登录系统,然后 su,则可以追踪谁对给定操作负责。
答案4
另一个很好的理由是:当通过 sudo 提升到 root 权限时,用户会使用自己的凭据进行身份验证,这意味着他们不一定必须获得 root 密码,这样当有人离开您的组织时就可以更轻松地锁定一切。