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

时间:2012-11-15 09:26:30

标签: linux apache svn 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 ...

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

更新

我从中获取了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>

我创建了像这样的密码文件

htpasswd -cm /path/to/authfile.htpasswd username
password (and retype)

最后

service httpd restart

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

(13) Permission Denied: Could not open password file

在Apache的错误日志

2 个答案:

答案 0 :(得分:7)

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

ls -Z 

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

chcon -t httpd_sys_content_t htpasswd

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

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

答案 1 :(得分:2)

在我脸上可能有一点明显的 slap

我之前将/path/to/authfile.htpasswd放在apaches home文件夹/ var / www的一边,当我把密码文件放在/var/www/svn-auth/*.htpasswd而不是它工作时。

无论chown(apache拥有/ svn-auth和.htpasswd文件)都可能被拒绝,因为它可能是apache(作为用户)主文件夹是/ var / www / *并且被拒绝访问它...

经验教训