사용자에게 sudo 권한을 부여하려고 합니다 doggy
. 이를 달성하기 위해 doggy-user.j2
doggy -user.j2 /etc/sudoers.d/doggy-user
의 내용을 기록하는 ansible 템플릿 파일을 만들었습니다 .
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
사용자: 루트 그룹: 루트 모드: 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