CentOS Subversion,基本身份验证密码文件无法正常工作

Pro*_*f83 2 linux svn apache centos .htpasswd

所以我安装了SVN并将HTTPD用于远程存储库.一切正常,直到我使用密码文件.这根本不起作用.Apache的error_log说

(13) Permission Denied: Could not open password file

我已将passwd文件的chmod设置为777并将其设置为apache,我还将repo和passwd文件的父文件夹设置为chown apache和chmod 777 ...

我不知道这是怎么一个权限问题...任何帮助请!

UPDATE

我从中获取了SVN,并在我的一个域上实现了标准的基本身份验证

<VirtualHost *:80>
    ServerName domain.com
    ServerAlias www.domain.com
    DocumentRoot "/var/www/www.domain.com/public_www"
    <Directory "/var/www/www.domain.com/public_www">
        Options -Indexes
        Order allow,deny
        Allow from all
        AllowOverride All
        AuthType Basic
        AuthName "Basic Authentication"
        AuthUserFile /path/to/authfile.htpasswd
        Require valid-user
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我像这样创建了密码文件

htpasswd -cm /path/to/authfile.htpasswd username
password (and retype)
Run Code Online (Sandbox Code Playgroud)

最后

service httpd restart
Run Code Online (Sandbox Code Playgroud)

请注意,auth提示符和以前一样,但是用户名和密码都没有!这是相当令人沮丧的,我已经仔细检查了密码文件和父文件夹的所有权限,所有者等,但我仍然得到

(13) Permission Denied: Could not open password file
Run Code Online (Sandbox Code Playgroud)

在Apache的error_log中

Tan*_*ner 7

如果您使用的是Red Hat Enterprise Linux/Centos/Fedora系统,并且您在apache拥有的/ var/www/html目录之外创建了htpasswd文件,那么您在使用htpasswd文件的SELinux上下文/标签时也会遇到问题.您可以使用传入ls命令的-Z选项检查htpasswd的当前上下文/标签.

ls -Z 
Run Code Online (Sandbox Code Playgroud)

htpasswd文件的类型应为httpd_sys_content_t.你可以用这个命令改变这个:

chcon -t httpd_sys_content_t htpasswd
Run Code Online (Sandbox Code Playgroud)

有关SELinux的重新标记文件的更多信息:

https://wiki.centos.org/HowTos/SELinux#head-0f6390ddacfab39ee973ed8018a32212c2a02199