Answers:
提供双连字符时,您将获得的体验与sudo su没有执行连字符的情况相同。
传递单个连字符与-l或传递相同--login。手册页su将行为描述为:
提供类似于用户直接登录用户所期望的环境。
这包括将目录设置为您的主目录,以及设置许多其他环境变量。
将双连字符传递给命令通常用于标记命令行标志的结尾和非标志参数的开头。例如,如果您运行touch -R,将收到一条错误消息,指出-R不是的选项touch,但如果运行touch -- -R,它将创建一个名为的文件-R。许多命令行工具都是如此(ls -R将执行递归操作,ls而ls -- -R将对ls名为的文件或目录执行-R。
因此,总结一下,当您只 传递--给su它时,基本上就是忽略了,--并且表现得好像根本没有传递任何选项。
sudo su -和sudo su -l不同。在仅使用密钥进行登录并且拥有sudo权限才能更改为特定其他用户的帐户上,sudo su -可以毫无问题地更改该用户,sudo su -l或者sudo su --login会要求输入我没有的sudo密码(尽管通过检查sudo -l我可以/bin/su使用NOPASSWD 执行)