2016-11-12 74 views
0

我使用的是centos 7,我安裝了httpd,svn和mod_dav_svn,我可以通過http://localhost訪問apache。centos apache svn禁止

我/etc/httpd/conf.modules.d/10-subversion.conf樣子:

cd /svn 
sudo svnadmin create repo 
sudo chown -R apache:apache repo 

然後爲用戶設置用戶權限:

LoadModule dav_svn_module  modules/mod_dav_svn.so 
LoadModule authz_svn_module modules/mod_authz_svn.so 
LoadModule dontdothat_module modules/mod_dontdothat.so 

<Location /svn> 
DAV svn 
SVNParentPath /svn 
AuthName "SVN repo" 
AuthType Basic 
AuthUserFile /etc/svn/svn-auth 
AuthzSVNAccessFile /svn/authz 
Require valid-user 
</Location> 

通過命令來創建svn的由從/ SVN /回購/ CONF/AuthZ的複製

sudo cp /svn/repo/conf/authz /svn/authz 

然而,當我訪問EDITTING/SVN/AuthZ的,它向我展示了403個禁止訪問,您無權訪問此服務器上的/ svn/repo。

我/ SVN目錄是:

[[email protected] svn]$ ls 
authz repo 

[[email protected] svn]$ ls -l 
total 4 

-rw-r--r--. 1 root root 1123 Nov 12 11:08 authz 
drwxr-xr-x. 6 apache apache 80 Nov 12 11:01 repo 

/SVN/AuthZ的

[groups] 
admin = frank 
general_user=test1 

[/] 
@admin=rw 

[repo:/] 
@general_user=r 

什麼問題?

----- 14月更新------------

我啓用了日誌記錄像

<Location /svn>  
DAV svn 
… 
</Location> 

CustomLog logs/svn_logfile "%t %u %{SVN-ACTION}e" env=SVN-ACTION 

有svn_logfile在/ var /日誌/ httpd,但它是空的。

-rw-r - r--。 1架阿帕奇阿帕奇0年11月14 22點32 svn_logfile

在error_log中,所顯示的信息作爲

[Mon Nov 14 22:32:15.789588 2016] [core:notice] [pid 6924] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0 
[Mon Nov 14 22:32:15.791536 2016] [suexec:notice] [pid 6924] AH: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) 
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message 
[Mon Nov 14 22:32:15.828814 2016] [auth_digest:notice] [pid 6924] AH01757: generating secret for digest authentication ... 
[Mon Nov 14 22:32:15.830345 2016] [lbmethod_heartbeat:notice] [pid 6924] AH02282: No slotmem from mod_heartmonitor 
[Mon Nov 14 22:32:15.842779 2016] [mpm_prefork:notice] [pid 6924] AH00163: Apache/2.4.6 (CentOS) SVN/1.7.14 configured -- resuming normal operations 
[Mon Nov 14 22:32:15.842858 2016] [core:notice] [pid 6924] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND' 
[Mon Nov 14 22:32:25.641415 2016] [authz_svn:error] [pid 6933] (13)Permission denied: [client ::1:60550] Failed to load the AuthzSVNAccessFile: Can't open file '/svn/authz': Permission denied 
[Mon Nov 14 22:32:25.641504 2016] [authz_svn:error] [pid 6933] [client ::1:60550] Access denied: 'frank' GET repo:/ 

但/ SVN/AuthZ的許可是:

drwxr-XR-X 。 4 apache apache 41 Nov 13 22:16 svn

-rwxrwxrwx。 1 apache apache 1120 Nov 12 22:58 authz

drwxr-xr-x。 6阿帕奇阿帕奇80 11月12日11:01回購

回答

0

然後通過EDITTING/SVN/AuthZ的

你應該仔細檢查你把authz文件的訪問規則的用戶設置用戶權限。應該有一個訪問規則,如

[repo:/] 
* = r 

* = r代表每個人 - 只讀。請閱讀SVNBook | Path-Based Authorization中的訪問規則和authz文件語法。

順便說一句,你可以啓用日誌記錄並找出你自己的根本原因。閱讀SVNBook | Apache logging

+0

我在文章結尾更新了/ svn/authz並閱讀了您提供的基於路徑的授權,看起來authz是正確的。正如你所說的,我將啓用日誌記錄,以查看反饋的根本原因。 – frank

+0

我啓用了日誌記錄,就像你的鏈接說的那樣,在/ var/log/httpd下有svn_logfile,但是沒有內容,但是error_log有,詳細信息請參考post中的更新部分。 – frank

1

問題是selinux。

後我修改的/由

須藤chcon這個-RV --type = httpd_sys_content_t/SVN的selinux的安全上下文的svn

然後我可以訪問SVN。

+0

只需稍作更改即可在Centos 7上執行「sudo chcon -Rv --type = httpd_sys_content_t/svn」 – Yamada