转载自:Linux命令su、sudo、sudo su、sudo -i使用和区别
sudo 与 su 两个命令的最大区别是:
sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码。另外一个区别是其默认行为。sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。
su 用以切换成不同的用户的身份
sudo | su | |
---|---|---|
输入密码 | sudo 命令需要输入当前用户的密码 | su 命令需要输入 root 用户的密码 |
默认行为 | sudo 命令只允许使用提升的权限运行单个命令 | 而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录 |
使用方式 | sudo 一般加的是命令,sudo -i root 与sudo - root 、sudo -i 、sudo - 、sudo root 效果相同 。提示输入密码时该密码为当前账户的密码。要求执行该命令的用户必须在sudoers中才可以 | su默认只是切换身份,并没有切换环境变量,环境变量依然是普通用户的。切换用户身份时,用户的环境变量也切换成新用户的环境变量,所以"-"不能省略,不然有些操作无法执行。su root 输入root密码后切换之root用户但是pwd目录不变。su - root 输入root密码后切换之root用户但是pwd目录/root。su需要的是切换后账户的密码,用法为“su 账户名称”,暂时切换到超级用户模式以执行超级用户权限,一般指的是root用户,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,默认为一次时长15分钟。 |
sudo su 运行sudo命令给su命令提权,运行su命令。 要求执行该命令的用户必须在sudoers中才可以。