当我尝试在 Web 浏览器中登录 Nagios 时,在 Nagios 页面上反复输入登录名和密码后http://127.0.0.1/nagios/
,我得到了以下信息:
需要授权
此服务器无法验证您是否有权访问所请求的文档。您提供的凭据有误(例如密码错误),或者您的浏览器无法提供所需的凭据。Apache/2.2.15 (Red Hat) 服务器位于 127.0.0.1 端口 80
我修改了密码:
htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
并重新启动服务器:
service httpd restart
但没有结果!
答案1
<Directory "/usr/lib/nagios/cgi-bin/">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/nagios/passwd
Require valid-user
</Directory>
您为 指定了错误的路径AuthUserFile
:它应该是/etc/nagios/htpasswd.users
而不是/etc/nagios/htpasswd
。
答案2
确保 apache 的用户可以读取/etc/nagios/htpasswd.users
:
如果你的 apache 用户是www-data
,那么:
$ sudo chown www-data /etc/nagios/htpasswd.users
$ sudo chmod 600 /etc/nagios/htpasswd.users
答案3
在 Apache 2.4 中,指令“Require”取代了指令“Order allow,deny”。但是,仍然存在一个错误,因此 Require valid-user 不起作用,但 Require user xyz 起作用。所以...
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sgin">
#SSLRequireSSL
Options ExecCGI
AllowOverride None
<RequireAll>
Require user nagiosadmin
AuthName Nagios
AuthType Basic
AuthUserFile "/usr/local/nagios/etc/htpasswd.users"
</RequireAll>
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
#SSLRequiresSSL
Options None
AllowOverride None
<RequireAll>
Require user nagiosadmin
AuthName Nagios
AuthType Basic
AuthUsrFile "/usr/local/nagios/etc/htpasswd.users"
</RequireAll>
</Directory>
现在有效:)
答案4
更改 /usr/local/nagios/etc/htpasswd.users 文件的权限
chmod 755 /usr/local/nagios/etc/htpasswd.users
我通过更改权限解决了这个错误。