我已经成功安装了 nagios,它通过 apache2 提供身份验证,apache2 联系 kerberos 身份验证服务器来验证用户身份。
现在,用户已经通过身份验证,但他们没有任何授权,因为授权已配置,cgi.cfg
并且我不想手动逐个配置所有用户,或者将所有权利授予每个经过身份验证的用户。
我想知道是否可以在cgi.cfg
文件上设置组(例如 nagios_reader,具有监视 Web 界面、主机和服务状态的权限,以及 nagios_writer,具有运行外部命令的能力)而不是在用户上设置组,以及是否可以从 LDAP 中提取这些组。
答案1
我想知道是否可以在 cgi.cfg 文件上设置组
恐怕答案是否定的。Nagios 尚未支持此功能。authorized_
options 必须是经过身份验证的用户的逗号分隔名称列表。但如果如您所说,“这些组可以从 LDAP 中提取”,因此您可以使用一个小 shell 脚本添加组中的每个成员。
Nagios 具有authorized_for_read_only
选项配置在 CGI 中具有只读权限的用户名列表。假设包含nagios_reader.ldif
:
# nagios_reader, it, domain.com
dn: cn=nagios_reader,ou=it,dc=domain,dc=com
cn: nagios_reader
member: cn=foo,ou=it,dc=domain,dc=com
member: cn=bar,ou=it,dc=domain,dc=com
objectClass: groupOfNames
objectClass: top
authorized_for_read_only
您可以使用以下方法将该组的所有成员配置为变量的值:
$ ldapsearch -x -W -D "cn=manager,dc=domain,dc=com" "cn=nagios_reader" | \
awk -F"=|," '/member: / { print $2 }' | \
while read u; do sed -i "/^authorized_for_read_only/s/$/,$u/" cgi.cfg; done