zabbix 스크립트에서 사용하기 위해 여러 (가상) 서버(주로 데비안)에 대해 몇 가지 sudo 규칙을 설정했습니다.
zabbix ALL=NOPASSWD: /etc/init.d/exim4 restart
zabbix-agent 및 sudo 구성 파일( /etc/sudoers.d/zabbix-agent
)은 ansible을 통해 배포되며 모든 서버에서 동일합니다.
그러나 일부 서버에서는 sudo에 비밀번호가 필요합니다. 다른 사람들에게는 그렇지 않습니다. zabbix를 사용하여 실행하든 로컬로 실행하든 명령은 동일합니다.
# sudo -u zabbix sudo /etc/init.d/exim4 restart
때로는 작동하고 때로는 비밀번호를 묻는 경우도 있습니다.
조사해 보니 sudo 구성에서 zabbix 사용자에 대한 다른 규칙이 있다는 것이 분명한 대답이지만 이는 잘못된 것입니다.
시스템이 비밀번호를 요구하게 만드는 다른 요인은 무엇입니까?
답변1
좋습니다. 오류의 원인은 두 가지입니다.
- 이
sudoers.d
디렉터리는 포함되어 있지 않습니다/etc/sudoers
. 대부분의 최신 시스템에서는 이것이 기본값이므로 파일을 삭제하면 됩니다. 그러나 원래 Debian Lenny와 함께 설치되어 이전 sudoers 파일을 유지하는 일부 이전 시스템도 있습니다. - exim이 설치되지 않았으므로
/etc/init.d/exim4
존재하지 않습니다. 지금 이것도 어느 정도는 사용자 과실이지만,매우 형편없는 오류 보고서Sudo의 경우. 특정 파일을 실행하려는 시도를 보고하면 정보 유출이 발생할 수 있다는 것을 알고 있습니다(그러나 sudo 구성에는 해당 실행 파일에 대한 명확한 규칙이 있으므로 그것이 타당한 이유인지는 확실하지 않습니다). 하지만 올바른 정보를 제공하면 시스템이 그렇게 합니다. 비밀번호를 입력하면 오류가 보고됩니다.