죄송합니다. 사용자 nagios는 루트로 "SCRIPT.sh"를 실행할 수 없습니다.

죄송합니다. 사용자 nagios는 루트로 "SCRIPT.sh"를 실행할 수 없습니다.
user1@<HOSTNAME>:~$ sudo -H -u nagios bash -c "sudo /usr/localcw/bin/check_disk.sh -w 10% -c 80% -p /boot"

Sorry, user nagios is not allowed to execute '/usr/localcw/bin/check_disk.sh -w 10% -c 80% -p /boot' as root on <HOSTNAME>.

user1@<HOSTNAME>:~$ sudo -H -u nagios bash -c "sudo /usr/localcw/bin/nagios_check_files_age.sh -f /var/lib/logrotate/status -c 3600  -w 3600"

FILE_AGE OK: /var/lib/logrotate/status is 1680 seconds old and 1626 bytes.[w=3600 , c=3600 s]

user1@<HOSTNAME>:~$ ls -l /usr/localcw/bin/check_disk.sh

-rwx------ 1 root root 6390 Mar  3 16:45 /usr/localcw/bin/check_disk.sh

user1@<HOSTNAME>:~$  ls -l /usr/localcw/bin/nagios_check_files_age.sh

-rwx------ 1 root root 2236 Nov 13 15:48 /usr/localcw/bin/nagios_check_files_age.sh

보시다시피 두 스크립트의 권한이 동일하고 두 스크립트에 사용된 인터프리터도 동일하므로 문제의 원인이 무엇인지 알아보려고 노력했습니다.

쉘 스크립트의 코드는 다음에서 찾을 수 있습니다.checkdisk.sh

nagios_check_files_age.sh

답변1

visudo를 실행하고 nagios 사용자 이름이 포함된 줄을 찾으세요. 누군가 제한된 sudo 권한을 부여했을 수 있습니다. 다음과 유사한 줄이 표시되면 /usr/localcw/bin/check_disk.sh를 목록에 추가할 수 있습니다.

비쥬도

## Allows nagios user to run below commands
nagios ALL=/usr/localcw/bin/nagios_check_files_age.sh

목록에 추가

비쥬도

## Allows nagios user to run below commands
nagios ALL=/usr/localcw/bin/nagios_check_files_age.sh, /usr/localcw/bin/check_disk.sh

sudoers 파일에 추가한 후 명령을 다시 시도하십시오.

nagios 사용자가 sudoers 파일에 나열되어 있지 않으면 facls(액세스 제어)를 확인하세요.

getfacl /usr/localcw/bin/check_disk.sh

관련 정보