以特定用户身份启用无密码 sudo

its*_*dok 28 sudo

我的系统上有两个用户: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

按着这些次序:

  1. 编辑 sudoers 文件(这可以出现在 /etc/sudoers.d/file_name 中)
sudo visudo -f /etc/sudoers
Run Code Online (Sandbox Code Playgroud)
  1. 在文件末尾添加一行
usernameusedforlogin ALL=(ALL) NOPASSWD:ALL
Run Code Online (Sandbox Code Playgroud)
  1. 保存存档
esc :wq!
Run Code Online (Sandbox Code Playgroud)


Tum*_*oid 12

修改后的评论答案:如果您在下面放置指令#includedir,它们将被忽略。移动sudoadmin组定义旁边的行,或将其放在/etc/sudoers.d/.