sudo 命令用于让普通用户暂时获得 root 用户的权限。

我一直好奇为什么普通用户输入自己的密码,就可以获得 root 权限了,不应该是输入 root 的密码才可以获得 root 权限吗?其实是这样, root 会将“什么样的普通用户可以使用 sudosudo 的时候可以使用哪些命令”的信息记录在 /etc/sudoers 这个文件中,然后 sudo 会在使用过程中根据这个文件来审计使用者和使用的命令。

在使用 sudo 的时候环境变量会默认变成 root 的环境变量,如果希望保留原本普通用户的环境变量,可以使用 -E 选项,还可以通过编辑 /etc/sudoers 来指定保留哪些环境变量。