thepocketwade Asked: 2009-07-17 12:41:21 +0800 CST2009-07-17 12:41:21 +0800 CST 2009-07-17 12:41:21 +0800 CST 为什么 su 到 root 而不是以 root 身份登录? 772 我经常听说用 su 到 root 比直接以 root 用户登录更好(当然人们也说使用 sudo 更好)。我从来没有真正理解为什么一个比另一个更好,洞察力? linux login root sudo 10 个回答 Voted Best Answer Dan Carley 2009-07-17T12:46:55+08:002009-07-17T12:46:55+08:00 推断是仅su或sudo在需要时。 大多数日常任务不需要 root shell。因此,最好使用非特权 shell 作为您的默认行为,然后仅在需要执行特殊任务时提升为 root。 通过这样做,您可以减少您使用的任何应用程序的危险错误(错误的脚本、错误的通配符等)和漏洞的范围。尤其是那些连接到 Internet 的 - 请参阅古老的格言“不要以 root 身份进行 IRC”。 sudo经常被推荐,因为它允许你细粒度和审计这些权限的使用。 通过观察这些做法,您还可以禁用远程 root 登录。这增加了任何潜在攻击者的准入门槛,因为他们需要破坏作为“wheel”组成员并且理想情况下仅由 SSH 公钥授权的普通用户帐户,然后是 root 帐户本身。 egorgry 2009-07-17T12:47:24+08:002009-07-17T12:47:24+08:00 您应该从远程禁用 root 访问,这样攻击者就无法在不首先危害用户然后升级到 root 的情况下危害 root。我们仅在控制台启用 root 访问。 此外,它还创造了责任感。:) Tim 2009-07-17T12:48:13+08:002009-07-17T12:48:13+08:00 主要原因是创建审计跟踪。如果您需要以普通用户身份登录系统,然后以 su 身份登录,则可以跟踪谁对给定操作负责。 Jure1873 2009-07-17T12:48:36+08:002009-07-17T12:48:36+08:00 sudo 还会自动将每个命令记录到 syslog,您可以定义每个用户可以使用的命令。 Zenham 2009-07-17T13:15:55+08:002009-07-17T13:15:55+08:00 另一个很好的理由:当通过 sudo 提升到 root 时,用户使用他们自己的凭据进行身份验证,这意味着他们不一定要获得 root 密码,这样当有人离开你的组织时更容易锁定。 mibus 2009-07-17T13:50:48+08:002009-07-17T13:50:48+08:00 如果您想创建审计跟踪,并且不想成为此处提到的“sudo su -”或“sudo vim foo.txt”问题的受害者,您可以使用“sudosh”。通过 sudo 分发 root 访问权限,但使用唯一允许的命令来运行“sudosh”。 sudosh 是一个日志外壳,您可以在以后重播整个终端会话,准确显示用户在其终端上看到的内容。 chris 2009-07-17T18:20:22+08:002009-07-17T18:20:22+08:00 您应该深入练习安全性。 禁止远程 root 访问(或至少通过密码进行 root 访问)。(如果您允许通过密钥进行 root 访问,请仔细控制这些密钥,或者最好使用允许集中撤销密钥的 kerberos 之类的东西)。 我会禁用 su 并使用 sudo。这样,用户使用密钥(最好是加密的)来访问系统,然后他们只使用他们的密码来提升权限。您可以限制人们使用 sudo 访问哪些程序,但大多数情况下您只是限制知道 root 密码的人访问。 在理想的世界中,您应该能够在互联网上发布您的 root 密码,这并不重要,即使您允许人们访问您的机器(但没有将它们放在 /etc/sudoers 文件中)。当然,您不应该公开 root 密码,但其想法是通过同心层保护来保护您的系统。 Johan 2009-07-17T13:05:58+08:002009-07-17T13:05:58+08:00 这个想法是禁用 root 登录,因此没有默认的管理员帐户。这样,攻击者必须猜测用户名和密码(而不仅仅是密码)。 Aiden Bell 2009-07-17T13:24:25+08:002009-07-17T13:24:25+08:00 如果您定期使用 root,那么您的权限可能是错误的,或者您可能需要授予 sudo 权限或新的组权限来 r/w/x 文件或目录。 好的权限方案即使是长期使用 Linux 的用户也会犯错,或者没有意识到他们拥有的范围。 甚至不要让我开始了解 Ubuntu 所做的事情! gizmo 2011-01-01T13:29:25+08:002011-01-01T13:29:25+08:00 它使您无法运行 rm -r -f / 我 2 天前刚刚运行过(作为非特权用户,我打算运行 rm -r -f *)
推断是仅
su
或sudo
在需要时。大多数日常任务不需要 root shell。因此,最好使用非特权 shell 作为您的默认行为,然后仅在需要执行特殊任务时提升为 root。
通过这样做,您可以减少您使用的任何应用程序的危险错误(错误的脚本、错误的通配符等)和漏洞的范围。尤其是那些连接到 Internet 的 - 请参阅古老的格言“不要以 root 身份进行 IRC”。
sudo
经常被推荐,因为它允许你细粒度和审计这些权限的使用。通过观察这些做法,您还可以禁用远程 root 登录。这增加了任何潜在攻击者的准入门槛,因为他们需要破坏作为“wheel”组成员并且理想情况下仅由 SSH 公钥授权的普通用户帐户,然后是 root 帐户本身。
您应该从远程禁用 root 访问,这样攻击者就无法在不首先危害用户然后升级到 root 的情况下危害 root。我们仅在控制台启用 root 访问。
此外,它还创造了责任感。:)
主要原因是创建审计跟踪。如果您需要以普通用户身份登录系统,然后以 su 身份登录,则可以跟踪谁对给定操作负责。
sudo 还会自动将每个命令记录到 syslog,您可以定义每个用户可以使用的命令。
另一个很好的理由:当通过 sudo 提升到 root 时,用户使用他们自己的凭据进行身份验证,这意味着他们不一定要获得 root 密码,这样当有人离开你的组织时更容易锁定。
如果您想创建审计跟踪,并且不想成为此处提到的“sudo su -”或“sudo vim foo.txt”问题的受害者,您可以使用“sudosh”。通过 sudo 分发 root 访问权限,但使用唯一允许的命令来运行“sudosh”。
sudosh 是一个日志外壳,您可以在以后重播整个终端会话,准确显示用户在其终端上看到的内容。
您应该深入练习安全性。
禁止远程 root 访问(或至少通过密码进行 root 访问)。(如果您允许通过密钥进行 root 访问,请仔细控制这些密钥,或者最好使用允许集中撤销密钥的 kerberos 之类的东西)。
我会禁用 su 并使用 sudo。这样,用户使用密钥(最好是加密的)来访问系统,然后他们只使用他们的密码来提升权限。您可以限制人们使用 sudo 访问哪些程序,但大多数情况下您只是限制知道 root 密码的人访问。
在理想的世界中,您应该能够在互联网上发布您的 root 密码,这并不重要,即使您允许人们访问您的机器(但没有将它们放在 /etc/sudoers 文件中)。当然,您不应该公开 root 密码,但其想法是通过同心层保护来保护您的系统。
这个想法是禁用 root 登录,因此没有默认的管理员帐户。这样,攻击者必须猜测用户名和密码(而不仅仅是密码)。
如果您定期使用 root,那么您的权限可能是错误的,或者您可能需要授予 sudo 权限或新的组权限来 r/w/x 文件或目录。
好的权限方案即使是长期使用 Linux 的用户也会犯错,或者没有意识到他们拥有的范围。
甚至不要让我开始了解 Ubuntu 所做的事情!
它使您无法运行 rm -r -f / 我 2 天前刚刚运行过(作为非特权用户,我打算运行 rm -r -f *)