如何授予 Nagios 对自定义脚本中某些命令的 运行 权限?
How to grant Nagios permissions to run some commands in custom script?
我一直在为我的 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
告诉 nagios 运行 脚本作为 .cfg 文件中的 sudo...
假设其权限问题。
标准方法是在 /etc/sudoers
文件中为 Nagios 用户在受监控服务器(例如 NRPE)上设置权限。
1.方法
尝试在您的 sudoers 文件中添加类似的内容。
Defaults:nrpe !requiretty
nrpe ALL= NOPASSWD: useradd -m
nrpe ALL= NOPASSWD: smbpasswd -s -a
PS:为了方便编辑 sudoers 文件,您可以使用 visudo
命令 ;-)
2。方法
或者您可以尝试通过 sudo usermod -aG sudo <username>
将 Nagios 用户添加到 sudo
组
-a
代表加
G
适合群组
Edit /etc/sudoers
file using 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
将您的命令添加到文件末尾
例如
命令[your_command]=/usr/bin/sudo /path/to/your/command/or/script
重启nrpe
Centos:systemctl restart nrpe
(根据您的操作系统使用可用的命令)
我一直在为我的 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
告诉 nagios 运行 脚本作为 .cfg 文件中的 sudo...
假设其权限问题。
标准方法是在 /etc/sudoers
文件中为 Nagios 用户在受监控服务器(例如 NRPE)上设置权限。
1.方法
尝试在您的 sudoers 文件中添加类似的内容。
Defaults:nrpe !requiretty
nrpe ALL= NOPASSWD: useradd -m
nrpe ALL= NOPASSWD: smbpasswd -s -a
PS:为了方便编辑 sudoers 文件,您可以使用 visudo
命令 ;-)
2。方法
或者您可以尝试通过 sudo usermod -aG sudo <username>
sudo
组
-a
代表加
G
适合群组
Edit /etc/sudoers
file using 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
将您的命令添加到文件末尾
例如 命令[your_command]=/usr/bin/sudo /path/to/your/command/or/script
重启nrpe
Centos:systemctl restart nrpe
(根据您的操作系统使用可用的命令)