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
答え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