use*_*108 11 bash root debian su
$ 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 上不能很好地工作。
sca*_*cai 21
最近(util-linux
2018 年 7 月 27 日的2.32-0.2 版)Debian 切换到不同的su
实现,请参阅错误 833256。“新”su
来自,util-linux
而“旧”则包含在login
包装中并起源于src:shadow
这两个实现非常相似,但有一些细微的差异(当然可能还有更多尚未注意到的),例如
- 新的“su”(没有参数,即在保留环境时)也保留 PATH 和 IFS,而旧的 su 将始终重置 PATH 和 IFS,即使在“保留环境”模式下。
- su '' (空用户字符串) 用于给 root,但现在返回一个错误。
- 以前 su 只有一个 pam 配置,但现在 'su -' 在 /etc/pam.d/su-l 中单独配置
第一个区别可能是用户最明显的区别。出于多种原因,执行简单的“su”是一个非常糟糕的主意,因此强烈建议使用“su -”来始终获得类似于正常登录的新设置环境。如果您想恢复与前一个更相似的行为,您可以在 /etc/login.defs 中添加“ALWAYS_SET_PATH yes”。
之前使用的su
实现在PATH
. 此错误报告中也讨论了这一点,请参阅833256#80。新的su
蜜饯PATH
,如果不与调用su -
。
简而言之:Debian 的旧su
表现就像su -
,至少对于PATH
. 对于新的实现,您几乎应该总是使用su -
,类似于其他发行版。
归档时间: |
|
查看次数: |
14351 次 |
最近记录: |