昨天遇到一个问题,很奇怪为什么我在root下仍无法在PATH中搜索到sbin下的命令,如/sbin,/usr/sbin,/usr/local/sbin
翻看/etc/profile:
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi
然后echo $EUID,发现确实是0,但是默认情况下仍找不到fdisk等命令
后来才想起,su root 和su - root的区别就是要不要重新加载配置文件
如果su - ,那么系统会重新加载/etc/profile,那么就能找到以上路径了
而如果是普通用户,系统默认是不会加载以上路径到PATH中的
翻看/etc/profile:
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi
然后echo $EUID,发现确实是0,但是默认情况下仍找不到fdisk等命令
后来才想起,su root 和su - root的区别就是要不要重新加载配置文件
如果su - ,那么系统会重新加载/etc/profile,那么就能找到以上路径了
而如果是普通用户,系统默认是不会加载以上路径到PATH中的