sudo su - 和 sudo su 有什么区别 -

Ric*_*ich 24 su sudo

当我在我们的 RHEL 机器上工作时,我习惯sudo su -切换到 root。有一天,一个错字意味着我输入了sudo su --- 在我看来,一切都与使用单个连字符相同,只是我在发出命令之前位于同一个文件夹中(我发现自己在 中使用一个连字符/root)。

还有其他区别吗?在我知道我想在同一目录中工作的情况下使用它是否安全?

小智 26

当您提供双连字符时,您将获得的体验与您刚刚执行时sudo su没有任何连字符时的体验相同。

传递单个连字符与传递-l或相同--login。的手册页su将行为描述为:

提供与用户直接登录时所期望的环境类似的环境。

这包括将您的目录设置为您的主目录并设置一堆其他环境变量。

将双连字符传递给命令通常用于标记命令行标志的结束和非标志参数的开始。例如,如果您运行,touch -R您将收到一条错误消息,指出 -R 不是 的选项touch,但如果您运行touch -- -R,它将创建一个名为-R. 许多命令行工具都是如此(ls -R将执行递归,lsls -- -R将对ls名为-R.

所以,总结一下,当你 传递--su它时,基本上是忽略了--并且表现得好像你根本没有传递任何选项。