Shell

su vs su - (在 Debian 上):為什麼 PATH 是一樣的?

  • March 6, 2016

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

所以我開始認為可以在配置文件中更改設置。

對於配置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

還有一些其他地方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或者在/home/someuser.

引用自:https://unix.stackexchange.com/questions/7911