普通用户和 root 用户的区别,root 用户可以执行 /sbin
和 /usr/sbin
路径下的命令,而且不希望普通用户的 $PATH 变量中有 root 用户专属的路径。
sh
和 bash
已经在默认的配置文件 /etc/profile
中区别好了 root 用户和普通用户的 $PATH
:
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "$(id -u)" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin"
fi
export PATH
...
安装了 sudo 以后,普通用户也可以使用 root 权限执行命令,这个时候就需要 $PATH
的值和 root 用户一样。
编辑 sudo 的配置文件,把 root 用户的路径添加进去:sudo vi /etc/sudoers
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
重新登录使配置生效。