1、su、sudo
su命令的主要作用是让你可以在已登录的会话中切换到另外一个用户。换句话说,这个工具可以让你在不登出当前用户的情况下登录为另外一个用户。su命令经常被用于切换到超级用户或 root 用户(因为在命令行下工作,经常需要 root 权限),但是 - 正如前面所提到的 - su 命令也可以用于切换到任意非 root 用户。
sudo命令不能进行当前用户切换,sudo可以用于在普通用户模式下执行root用户才能执行的一些命令。
2、su与su -
su只是切换了root身份,但Shell环境仍然是普通用户的Shell;此时pwd,发现工作目录仍然是普通用户的工作目录。su -连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。此时pwd,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。
3、su与sudo
sudo
命令需要输入当前用户的密码,su
命令需要输入 root 用户的密码。就安全而言,sudo
命令更好。例如,考虑到需要 root 访问权限的多用户使用的计算机。在这种情况下,使用 su
意味着需要与其他用户共享 root 用户密码,这显然不是一种好习惯。此外,如果要撤销特定用户的超级用户/root 用户的访问权限,唯一的办法就是更改 root 密码,然后再告知所有其他用户新的 root 密码。使用 sudo
命令就不一样了,你可以很好的处理以上的两种情况。鉴于 sudo
命令要求输入的是其他用户自己的密码,所以,不需要共享 root 密码。同时