sudo :暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。缺点是每次执行超级用户权限都要在命令前加上 sudo ,优点是在当前终端再使用 sudo 不要再重复输入密码(只对于当前终端有效)。不过有时间限制,Ubuntu默认为一次时长15分钟。
sudo su: 运行sudo命令给su命令提权,运行su命令。 要求执行该命令的用户必须在sudoers中才可以。
sudo -i:为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。
但是只有指定的用户才有执行 sudo 的权限, 要求执行该命令的用户必须在sudoers中才可以。
区别:sudo -i,加载用户变量,并跳转到目标用户home目录;sudo -s,不加载用户变量,不跳转目录。Sudo -i 是 root 环境,而-s 只是一个有 root 权限的 shell。
su : 切换到某某用户模式,提示输入密码时的密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。
sudo -i 运行结果 PWD=/root
sudo su 运行结果 PWD=/home/用户名(当前用户主目录)