昨天遇到一个问题,很奇怪为什么我在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中的
本文解释了在Linux系统中使用su-与su命令的区别,特别是它们对于加载/etc/profile配置文件的影响,以及这对在root用户环境下查找/sbin目录下命令的作用。
1034

被折叠的 条评论
为什么被折叠?



