Mitch在评论中张贴了一个很好的链接:为什么以root用户身份登录很不好?Debian站点在其Wiki中列出了主要的好处:
为什么sudo
呢
sudo
出于多种原因,使用此方法比以root用户身份打开会话更好(更安全),其中包括:
没人需要知道root密码(sudo
提示输入当前用户的密码)。可以将临时特权授予单个用户,然后无需更改密码即可将其删除。
通过sudo
; 只运行需要特殊特权的命令很容易。其余时间,您将以非特权用户身份工作,从而减少了错误可能造成的损害。
审计/日志记录:sudo
执行命令时,将记录原始用户名和命令。
由于上述原因,通常不建议使用sudo -i
(或sudo su
)切换到root用户,因为它会取消上述功能。
关于Ubuntu的优缺点在我们的Wiki上列出:
使用sudo的好处
Ubuntu在默认情况下禁用root登录有很多好处,包括:
安装程序提出的问题较少。用户不必记住偶尔使用的额外密码(即root密码)。如果这样做的话,他们很可能会忘记它(或不安全地对其进行记录,从而使任何人都可以轻松地侵入他们的系统)。
默认情况下,它避免了“我可以做任何事”交互式登录。在进行重大更改之前,系统会提示您输入密码,这应该使您考虑操作的后果。
sudo添加了运行命令(在中/var/log/auth.log
)的日志条目。如果您搞砸了,可以返回并查看运行了哪些命令。
在服务器上,每个试图强行闯入的破解者都会知道它拥有一个名为root的帐户,并将首先尝试该帐户。他们不知道您其他用户的用户名是什么。由于root帐户密码已锁定,因此这种攻击从根本上变得毫无意义,因为首先没有密码需要破解或猜测。
- 通过在组中添加和删除用户,可以轻松转移管理员权限。使用单个root密码时,取消授权用户的唯一方法是更改root密码。
可以使用更细粒度的安全策略来设置sudo。不需要与需要在系统上执行某种类型的管理任务的每个人共享root帐户密码(请参阅上一个项目符号)。
身份验证会在短时间后自动过期(可以将其设置为所需的最小值或0);因此,如果您使用sudo以root身份运行命令后离开终端,则不会无限期地保持root终端打开。
使用sudo的缺点
尽管对于台式机而言,使用sudo的好处是巨大的,但仍然需要注意一些可能的问题:
重定向使用sudo运行的命令的输出需要另一种方法。例如,考虑到sudo ls > /root/somefile
将无法工作,因为它是尝试写入该文件的外壳程序。您可以ls | sudo tee -a /root/somefile
用来追加或ls | sudo
tee /root/somefile
覆盖内容。您还可以将整个命令传递给在sudo下运行的shell进程,以使用root权限(例如)写入文件sudo sh -c "ls >
/root/somefile"
。
在许多办公环境中,系统上的唯一本地用户是root用户。使用nss-ldap等NSS技术导入所有其他用户。在nss-ldap损坏的网络故障的情况下,要设置工作站或对其进行修复,则需要root用户。除非破解,否则这往往会使系统无法使用。这里需要一个额外的本地用户或启用的root密码。本地用户帐户的$ HOME应该在本地磁盘上,而不是在NFS(或任何其他联网的文件系统)上,以及.profile / .bashrc,该文件不引用NFS挂载上的任何文件。对于root用户通常是这种情况,但是如果添加非root用户救援帐户,则必须手动采取这些预防措施。但是,将本地用户与sudo一起使用的优点是可以轻松跟踪命令,如上面的好处所述。
而且我们一直都有(从第一版开始)。
我发现的最旧参考文献讲的是4.10,其中包含“ sudo”
SHUTTLEWORTH推出基于DEBIAN的UBUNTU LINUX
...基于Debian的Ubuntu Linux包括Gnome 2.8,内核2.6.8.1,OpenOffice.org 1.1.2,并带有基于文本的安装过程,但操作简单。Ubuntu已禁用像Mac OSX一样更喜欢使用sudo的root用户...