以下发生在我身上:
$ sudo su - superman
Sorry, user clarkkent is not allowed to execute '/bin/su - superman' as root in krypton101.
Run Code Online (Sandbox Code Playgroud)
但是,以下工作正常:
$ sudo su superman
Run Code Online (Sandbox Code Playgroud)
什么时候允许用户做sudo su
但不做有用sudo su -
?这个设置是如何设置/取消设置的?我读了这个页面,但没有帮助。
更多细节:
/etc/sudoers
回答这个问题:什么时候允许用户执行 sudo su 而不是 sudo su - 有用?
用户名su
之前的连字符指示 su 允许当前用户继承用户名的环境。只要clarkkent的环境设置了必要的环境变量就可以以超人身份运行,就不需要运行了。 sudo su - superman
不允许的一个合理的“原因”sudo su - superman
可能是系统管理员认为这sudo su - superman
造成了安全风险。这是因为,在不指定用户名的情况下,指示系统以rootsudo su -
用户身份登录,这可能是系统管理员试图避免的事情。我实际上不确定添加连字符是否会产生这种风险,但我想当涉及到安全性时,安全总比抱歉好。
如何设置/取消设置此设置?
配置在/etc/sudoers
文件中定义。