我不明白为什么su -
优先于su
以 root 身份登录。
例如,我有一个用户user1
对其 进行了修改.bash_profile
,其中一个更改了PATH
,例如:export PATH=/some/place:$PATH
。如果我user1
以su - user1
.
但是,如果我尝试通过su
as运行命令root
,例如:
su -c test.sh oracle
Run Code Online (Sandbox Code Playgroud)
(测试包含echo $PATH
)
它似乎没有修改PATH
(或 root 的PATH
,就此而言)。我也试过复制.bash_profile
到.profile
,无济于事。
为什么会这样?
$ su -
Password:
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# exit
logout
$ su
Password:
# echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Run Code Online (Sandbox Code Playgroud)
我不知道为什么 /bin 和 /sbin 没有添加到$PATH
,如果我做普通的 su 。过去就是这样。我怎样才能解决这个问题?我确实注意到:
-rw-r--r-- 1 root root 0 Jan 8 2018 /etc/environment
Run Code Online (Sandbox Code Playgroud)
但除此之外,我的系统似乎很正常。
编辑:我忘了强制性的 uname -a
Linux rpi3 4.17.0-1-arm64 #1 SMP Debian 4.17.8-1 (2018-07-20) aarch64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
编辑2:
$ cat /etc/issue
Debian GNU/Linux buster/sid \n \l
Run Code Online (Sandbox Code Playgroud)
所有的包都来自“测试”repo,因为“稳定”的包在 aarch64 上不能很好地工作。