在 Fedora 操作系统上,我无法访问 SVN Repo 并通过 HTTP 提交。
这是我的配置文件
/etc/httpd/conf.d/subversion.conf
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 /var/www/svn
SVNListParentPath On
SVNPathAuthz Off
AuthType Basic
AuthName "myRepos"
AuthUserFile /etc/svn-pass
AuthzSVNAccessFile /etc/svn-authz
Require valid-user
</Location>
错误:
共享项目失败。svn: 无法打开文件‘/var/www/svn/repo/db/txn-current-lock’: 权限被拒绝svn: MKACTIVITY ‘/svn/repo/!svn/act/4b515a33-4801-0010-8d84-bddd16ee6e1b’:500 内部服务器错误 (http://example.com:8080)
目录如下:
./repo/db: total 56K drwxr-sr-x. 6 apache apache 4.0K Sep 1 01:03 ./ drwxr-xr-x. 6 apache apache 4.0K Aug 30 23:20 ../
-rw-r--r--. 1 apache apache 2 Sep 1 01:03 current
-r--r--r--. 1 apache apache 22 Aug 30 23:20 format
-rw-r--r--. 1 apache apache 2.0K Aug 30 23:20 fsfs.conf
-rw-r--r--. 1 apache apache 5 Aug 30 23:20 fs-type
-rw-r--r--. 1 apache apache 2 Aug 30 23:20 min-unpacked-rev
-rw-r--r--. 1 apache apache 4.0K Aug 30 23:24 rep-cache.db drwxr-sr-x. 3 apache apache 4.0K Aug 30 23:20 revprops/ drwxr-sr-x. 3 apache apache 4.0K Aug 30 23:20 revs/ drwxr-sr-x. 2 apache apache 4.0K Sep 1 01:03 transactions/
-rw-r--r--. 1 apache apache 2 Sep 1 01:03 txn-current
-rw-r--r--. 1 apache apache 0 Aug 30 23:20 txn-current-lock drwxr-sr-x. 2 apache apache 4.0K Sep 1 01:03 txn-protorevs/
-rw-r--r--. 1 apache apache 37 Aug 30 23:20 uuid
-rw-r--r--. 1 apache apache 0 Aug 30 23:20 write-lock
和
./repo/db: drwxr-sr-x. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 ./ drwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 ../ -rw-r--r--. apache apache system_u:object_r:httpd_sys_content_t:s0 当前 -r--r--r--. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 格式 -rw-r--r--. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 fsfs.conf -rw-r--r--. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 fs-type -rw-r--r--。apache apache unconfined_u:object_r:httpd_sys_content_t:s0 min-unpacked-rev -rw-r--r--。apache apache unconfined_u:object_r:httpd_sys_content_t:s0 rep-cache.db drwxr-sr-x。apache apache unconfined_u:object_r:httpd_sys_content_t:s0 revprops/drwxr-sr-x。apache apache unconfined_u:object_r:httpd_sys_content_t:s0 revs/drwxr-sr-x。 apache apache unconfined_u:object_r:httpd_sys_content_t:s0 事务/-rw-r--r--。apache apache system_u:object_r:httpd_sys_content_t:s0 txn-current -rw-r--r--。apache apache unconfined_u:object_r:httpd_sys_content_t:s0 txn-current-lock drwxr-sr-x。apache apache unconfined_u:object_r:httpd_sys_content_t:s0 txn-protorevs/-rw-r--r--。apache apache unconfined_u:object_r:httpd_sys_content_t:s0 uuid -rw-r--r--。 apache apache unconfined_u:object_r:httpd_sys_content_t:s0 写锁
答案1
SELinux problem again
这是权限问题。但不是 apache 用户的“经典”读/写权限,而是 selinux 权限。
Apache 无法写入标记为 httpd_sys_content_t 的文件,这些文件只能由 apache 读取。
您有两种选择:
将 svn 存储库文件标记为 httpd_sys_content_rw_t:
1- chcon -R -t httpd_sys_content_rw_t /path/to/your/svn/repo
设置 selinux 布尔值 httpd_unified --> on
2 - setsebool -P httpd_unified=1
首选第二种可能性。