Answers:
su
表示替代用户,如果不带任何参数调用它,您将成为超级用户。因此,您必须输入root密码。
如果许多人需要使用命令来进行系统管理或具有扩展用户权限的类似内容,那么这是不方便的。您只是不希望人们通过共享所有相同的root密码来拥有无限的权利。
解决这类问题的方法是sudo
(“ 替代用户做 ”)。这将允许您指定某人可以调用的命令并定义权限。因为sudo
您不必输入root密码,而是要尝试调用sudo命令的用户的密码。
某些发行版出于安全原因而禁用了root用户。这可能是为什么您无法使用的一种解释su
。在这种情况下,要获得具有root特权的shell,请使用sudo -s
;-)
$ script
和之间有什么区别$ sudo script
吗?在两种情况下,用户都是相同的。
sudo allows a permitted user to execute a command as the superuser or another user, as specified in the sudoers file.
-来自人须藤。通常,该脚本将使用root特权来调用。那是区别。
不带选项的su命令将默认允许您成为root用户。它不是在询问您的密码,而是在询问root密码。
sudo命令总是要求您输入密码。
sudo su -
因为破折号表示根据用户(在本例中为root)的登录配置文件设置环境。这通常会稍微增加PATH安全性,但仍然无法防范echo hi > /dev/my_critical_filesystem