抱歉,用户 nagios 不允许以 root 身份执行“SCRIPT.sh”

抱歉,用户 nagios 不允许以 root 身份执行“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

正如您所看到的,两个脚本的权限是相同的,并且两个脚本中使用的解释器是相同的,我一直在找出导致问题的原因。

shell 脚本的代码可以在这里找到:检查磁盘.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

相关内容