sudo
execute a command as another user
使用户能以超级用户身份或其他用户身份执行一条指令。
- 不新启shell,不更改环境变量。
- 需要的是
当前用户的密码
默认用法:
sudo commands
列出用户可以通过sudo执行的命令列表
sudo -l
通过 sudo,启动一个交互的 root shell,效果等同于su -
sudo -i
su
substitute user identity
切换 user ID 和 group ID,使用户能以新的 user ID和 group ID 去执行命令。
- 因此会新启一个 shell 并修改环境变量
- 需要的是
root 用户的密码
默认情况下,ubuntu 没有启用 root 用户,可以通过以下命令启用。
sudo passwd root
默认情况下,su 不切换当前目录,只会修改环境变量 USER, HOME 和 SHELL。
su
为了避免混乱,应该使用以下命令。这些命令启动一个shell 作为登录shell,会切换目录和重设环境变量。
su -
su -l
su --login
退出当前shell
exit
执行单条命令, 效果等同于 sudo commands
su -c "commands"