当我在 RHEL 机器上工作时,我常常sudo su -
切换到 root 身份。有一天,一个打字错误意味着我输入了sudo su --
- 在我看来,一切都与单个连字符相同,除了我在发出命令之前位于同一个文件夹中(我发现自己位于一个连字符中/root
)。
还有其他区别吗?在我知道我想在同一目录中工作的情况下使用它是否安全?
答案1
当您提供双连字符时,您将获得的体验与刚刚执行时sudo su
没有任何连字符的体验相同。
传递单个连字符与传递-l
或相同--login
。 的手册页su
描述了此行为:
提供类似于用户直接登录时所期望的环境。
这包括将目录设置为主目录并设置一堆其他环境变量。
将双连字符传递给命令通常用于标记命令行标志的结束和非标志参数的开始。例如,如果您运行,touch -R
您将收到一条错误,指出 -R 不是 的选项touch
,但如果您运行,touch -- -R
它将创建一个名为-R
.许多命令行工具都是如此(ls -R
将执行递归ls
,而ls -- -R
将ls
在名为-R
.
所以,总结一下,当你通过时仅有的 --
基本上su
就是忽略--
并表现得好像你根本没有通过任何选项。