Pau*_*ulP 4 command-line shell su
我知道su和之间应该有什么区别su -,但例如在我的系统(Debian)中PATH是相同的:
[root]# su
[root]# echo $PATH
/user_path/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[root]# exit
[root]$ su -
[root@debian ~]# echo $PATH
/user_path/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Run Code Online (Sandbox Code Playgroud)
所以我开始认为可以在配置文件中更改设置。
要配置su PATH,请查看/etc/login.defs:
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Run Code Online (Sandbox Code Playgroud)
还有一些其他地方PATH可以改变,包括:
/etc/environment/etc/bash.bashrc/etc/profile/etc/profile.d/*~/.bashrc~/.bash_profile如果没有每个用户设置什么特别的东西,su似乎越来越其PATH从/etc/environment和su -似乎是从获取其环境/etc/login.defs ENV_SUPATH。
所以,你的系统上,我的猜测是,你有同样的PATH价值/etc/login.defs在/etc/environment,或者你有一些额外的配置/etc/profile.d,/etc/bash.bashrc或在一些RC文件/home/someuser。