3

だから私はSVNをインストールし、リモートリポジトリにHTTPDを使用しています。パスワードファイルを使用するまで、すべてうまくいきます。これはまったく機能していません。Apacheのerror_logは言う

(13) Permission Denied: Could not open password file

passwd ファイルの chmod を 777 に設定し、chown を apache に設定しました。また、リポジトリと passwd ファイルの親フォルダーを chown apache と chmod 777 に設定しました...

これがパーミッションの問題である理由がわかりません...助けてください!!

アップデート

私はそれからSVNを取り出し、ドメインの1つに標準の基本認証を実装しました

<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

見よ、認証プロンプトは以前と同じように機能しますが、ユーザー名とパスワードは機能しません! これはかなりイライラします。パスワードファイルと親フォルダーのすべての権限、所有者などを再確認しましたが、それでも取得できます

(13) Permission Denied: Could not open password file

Apache の error_log 内

4

2 に答える 2

8

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

于 2013-05-09T20:28:45.877 に答える
2

たぶん、私の顔に明らかな平手打ちが少しあります:

以前は、/var/www/svn-auth/*.htpasswd にパスワード ファイルを配置したときに、/path/to/authfile.htpasswd を apaches ホーム フォルダ /var/www の外に配置していました。

chown (/svn-auth および .htpasswd ファイルを所有する apache) に関係なく、apache の (ユーザーとしての) ホームフォルダーが /var/www/* であり、その外部へのアクセスが拒否されている可能性が高いため、おそらく拒否されていました.. .

学んだ教訓

于 2012-11-21T22:41:31.150 に答える