我的系统上有两个用户:itsadok,我的主要用户,和elasticsearch,一个用户具有不同的 ulimit 来运行 ElasticSearch。
我希望能够以次要用户身份运行东西,而无需每次都提示输入密码。
我将以下行添加到/etc/sudoers:
itsadok ALL=(elasticsearch:elasticsearch) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
按照我的理解,这应该允许用户 itadok 在任何主机上以(用户或组)elasticsearch 身份运行任何命令,而无需密码。但是,尝试类似
itsadok@dev001$ sudo -u elasticsearch ls
Run Code Online (Sandbox Code Playgroud)
提示我输入密码。重新启动机器没有帮助。
我究竟做错了什么?
更新:
事实证明,行的顺序sudoers很重要。我将这行放在“用户权限规范”下,这听起来像是正确的地方,但%admin后来出现的组的行覆盖了设置。
将同一行放在 sudoers 文件的末尾修复了这个问题。
小智 17
按着这些次序:
sudo visudo -f /etc/sudoers
Run Code Online (Sandbox Code Playgroud)
usernameusedforlogin ALL=(ALL) NOPASSWD:ALL
Run Code Online (Sandbox Code Playgroud)
esc :wq!
Run Code Online (Sandbox Code Playgroud)