我已经成功安装了nagios,它通过apache2提供身份validation,通过联系Kerberos身份validation服务器来validation用户身份。
现在,用户已经过身份validation,但是他们没有任何授权,因为在cgi.cfg上configuration了cgi.cfg ,我不想一个接一个地手动configuration我的所有用户,也没有授予每个经过身份validation的用户的所有权限。
我想知道是否可以在cgi.cfg文件(如nagios_reader,有权观看Web界面,主机和服务状态,nagios_writer,能够运行外部命令)而不是用户上设置组。如果这些组可以从LDAP中提取。
我想知道是否可以在cgi.cfg文件上设置组
恐怕答案是否定的。 Nagios尚未支持此function。 authorized_选项的值必须是以逗号分隔的经过身份validation的用户名称列表。 但是,如果像您所说的那样, “这些组可以从LDAP中提取” ,那么您可以使用一些shell脚本来添加组中的每个成员。
Nagios拥有authorized_for_read_only选项来configuration在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
您可以使用以下命令将该组的所有成员configuration为authorized_for_read_onlyvariables的值:
$ 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