为什么su以root身份login而不是以root身份login?

我经常听说,最好是su根,而不是直接以root用户身份login(当然也有人说sudo更好)。 我从来没有真正明白为什么一个人比其他人更有见识?

推断是只要susudo在需要的时候。

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

通过这样做,您可以减less您使用的任何应用程序的危险错误(错误的脚本,错误的通配符等)和漏洞。 特别是那些连接到互联网 – 看到老谚语“不要IRC作为根” 。

sudo经常被推荐使用,因为它可以让你更细粒度地审核使用这些权限。

通过观察这些做法,您也可以禁用远程rootlogin。 这增加了任何可能的攻击者的进入门槛,因为他们需要妥协一个普通的用户帐户,该用户帐户是“轮子”组的成员,理想情况下只有SSH公钥授权,然后是根帐户本身。

您应该禁用远程的根访问权限,因此攻击者无法首先破坏用户,然后升级到root用户,从而无法破坏root。 我们只在控制台上启用root权限。

另外它创造责任。 🙂

主要原因是创build审计线索。 如果您需要以普通用户的身份login到系统,然后执行su操作,则可以跟踪由谁负责的操作。

sudo也会自动logging每个命令到系统日志,你可以定义每个用户可以使用的命令。

另一个很好的理由是:当通过sudo提升到root用户时,用户使用他们自己的凭证进行身份validation,这意味着他们不一定必须获得root密码,从而更容易在某人离开组织时将其locking。

如果你想创build一个审计跟踪,而不想成为这里提到的“sudo su – ”或“sudo vim foo.txt”问题的受害者,可以使用“sudosh”。 通过sudo发出root权限,但是只允许命令运行“sudosh”。

sudosh是一个日志loggingshell,你可以在晚些时候重放整个terminal会话,准确显示用户在terminal上看到的内容。

你应该深入实践安全。

禁止远程root访问(或者至less通过密码进行root访问)。 (如果您允许通过密钥进行root访问,请仔细控制这些密钥,或者更好地使用允许集中撤销密钥的kerberos。

我会禁用su和使用sudo。 这样,用户使用密钥(最好是encryption的)来访问系统,然后他们只使用他们的密码来提升权限。 你可以限制人们用sudo访问哪些程序,但是大多数情况下你只是限制谁知道root密码。

在一个理想的世界里,你应该能够在互联网上发布你的root密码,即使你允许别人访问你的机器(但并没有把它们放在/ etc / sudoers文件中)也没关系。 当然,你不应该发布root密码,但是你的想法是你用同心的保护层来保护你的系统。

这个想法是禁用根login,因此没有默认的pipe理员帐户。 这样攻击者必须猜测用户名和密码(而不仅仅是密码)。

如果您定期使用root 权限,那么您的权限可能是错误的,或者您可能需要授予sudo权限或新的组权限以r / w / x文件或目录。

良好的许可scheme甚至是长期以来的Linux用户错误,或没有意识到他们的范围。

甚至不要让我开始在Ubuntu上做什么!

它阻止你运行rm -r -f /我刚刚跑了2天前(作为非特权用户,我打算运行rm -r -f *)