我正在尝试向用户授予 sudo 权限doggy
。为了实现这一点,我创建了一个 ansible 模板文件,该文件将登陆doggy-user.j2
doggy /etc/sudoers.d/doggy-user
-user.j2 中的内容:
doggy ALL=NOPASSWD: /bin/ls
我的 main.yaml 文件包含:
- name: Allow doggy user minimal sudo rights
template:
src: doggy-user.j2
dest: /etc/sudoers.d/doggy-user
owner: root
group: root
mode: 0440
notify: restart agent
但如果我应用此更改,我会在服务器端收到以下错误:
>>> /etc/sudoers.d/doggy-user: syntax error near line 1 <<<
sudo: parse error in /etc/sudoers.d/doggy-user near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
请在这里帮助我如何以安全的方式创建 /etc/sudoers.d/doggy-user 并为用户提供适当的 sudo 权限doggy
。
答案1
使用 ansible 模板使用 user: root group: root mode: 0440 很难在 /etc/sudoers.d/ 下添加 sudoer 文件 更好的方法是先在 /etc/sudoers.d/ 中创建文件,然后复制内容。
- name: Create sudoer file for doggy-user
file:
path: "/etc/sudoers.d/doggy-user"
state: touch
mode: 0440
owner: root
group: root
- name: Add sudoers rules for doggy-user
copy:
dest: "/etc/sudoers.d/doggy-user"
content: |
doggy-user ALL=NOPASSWD: /bin/ls
notify: restart agent