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


22

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

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

Answers:


22

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

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

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

这包括将目录设置为您的主目录,以及设置许多其他环境变量。

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

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


我将它,但创建一个问题sudo su -sudo su -l不同。在仅使用密钥进行登录并且拥有sudo权限才能更改为特定其他用户的帐户上,sudo su -可以毫无问题地更改该用户,sudo su -l或者sudo su --login会要求输入我没有的sudo密码(尽管通过检查sudo -l我可以/bin/su使用NOPASSWD 执行)
karatedog

@karatedog,看来您没有提出问题。……
通配符
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.