答案1
这里有两个问题:
su - username
和之间的区别su username
如果指定-
(或),则模拟真实登录。除了一些选择变量(特别是在某些系统上)之外,环境已清除。否则,除了重置之外,环境将保持原样。-l
su
TERM
DISPLAY
XAUTHORITY
PATH
- 不传递用户名和指定用户名之间的区别
root
这可能取决于系统。在 Linux 上使用shadow
作为提供的包su
,如果未指定用户名,则su
首先尝试查看用户是否root
有passwd
条目。如果是的话,它就会使用它。如果没有,它会尝试uid
0。
不确定其他类 Unix 操作系统。
答案2
su -
切换到超级用户并设置环境,使其看起来像是直接登录的。su root
切换到名为 root 的用户并不模拟直接登录。
如果超级用户名为 root,则su
和su root
是等效的(并且不模拟直接登录),就像su -
和su - root
(确实如此)。