如何授予Nagios权限以在自定义脚本中运行某些命令?

时间:2017-01-12 13:15:38

标签: linux bash shell ubuntu nagios

我一直在为我的nagios机器制作一些自定义shell脚本。我能够让它们运行得很好,但由于某些原因,脚本中的某些命令似乎不起作用。

例如echo,cut,ps,grep之类的命令工作正常,但像touch,useradd这样的命令似乎不起作用,即使使用sudo也是如此。如果我从终端运行脚本,脚本中的所有命令都可以工作。

如何授予nagios权限以运行这些命令?

我在ubuntu 14.04.5 lts上运行nagios3

编辑:添加了几行未运行的代码

sudo useradd -m $USERNAME
(echo $PASSWORD; echo $PASSWORD) | sudo smbpasswd -s -a $USERNAME

3 个答案:

答案 0 :(得分:1)

告诉nagios在.cfg文件中将脚本作为sudo运行...

假设其权限问题。

答案 1 :(得分:1)

标准方式是受监控服务器上Nagios用户的设置权限,例如/etc/sudoers文件中的NRPE。

<强> 1。方法

尝试在你的sudoers文件中添加这样的内容。

Defaults:nrpe   !requiretty
nrpe  ALL= NOPASSWD: useradd -m
nrpe  ALL= NOPASSWD: smbpasswd -s -a

PS:为了便于编辑sudoers文件,您可以使用visudo命令; - )

<强> 2。方法

或者您可以尝试通过sudo

将Nagios用户添加到sudo usermod -aG sudo <username>群组

-a代表添加

G适用于群组

答案 2 :(得分:0)

编辑 /etc/sudoers,使用visudo ,可以自动检查文件中的错误。

Defaults:nrpe !requiretty
nrpe ALL=(root) NOPASSWD: /path/to/your/command/or/script

在这种情况下,验证sudo已为用户分配了上述权限 nrpe

sudo -U nrpe -l

您应该会在outpul中看到添加的命令

编辑/etc/nagios/nrpe.cfg 将命令添加到文件末尾

例如 命令[您的命令] = / usr / bin / sudo / path / to /您的/命令/或/脚本

重新启动nrpe Centos:systemctl restart nrpe(使用基于您的操作系统的可用命令)

相关问题