Apache-2.2
Apache:無法設置簡單的 SVN 使用者和訪問權限
我有一個儲存在 Apache 伺服器上的 SVN 儲存庫。
身份驗證是通過 SSPI 完成的,我正在嘗試將其移至更基本的東西(具有本地使用者/密碼列表)。
我的httpd.conf:
LoadModule sspi_auth_module modules/mod_auth_sspi.so LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so #LoadModule auth_digest_module modules/mod_auth_digest.so #LoadModule authn_alias_module modules/mod_authn_alias.so #LoadModule authn_anon_module modules/mod_authn_anon.so #LoadModule authn_dbd_module modules/mod_authn_dbd.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so #LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_user_module modules/mod_authz_user.so ... <Location /svn_toto> DAV svn SVNParentPath D:\web_server\svn_repositories_test AuthzSVNAccessFile D:\web_server\svn_repositories_test\svnaccessfile.txt #Satisfy Any Require valid-user AuthType Basic AuthName "Subversion Repository toto" AuthUserFile D:\web_server\svn_repositories_test\users.txt SVNIndexXSLT "/svnindex.xsl" </Location>
我的users.txt:
[users] super = super jean = jean
我的svnaccessfile.txt:
[groups] admin = super [/] @admin = rw [cloisonnement:/] jean = rw super = rw [cloisonnement:/trunk] jean = rw super = rw
現在,從客戶端機器上,我嘗試:
svn ls https://servername/svn_toto/cloisonnement/trunk --username super --password super
這失敗並詢問我密碼:
Authentication realm: <https://servername:443> Subversion Repository toto Username: super Password for 'super': ***** Authentication realm: <https://servername:443> Subversion Repository toto Username: super Password for 'super': ***** svn: E215004: Unable to connect to a repository at URL 'https://servername/svn_toto/cloisonnement/trunk' svn: E215004: No more credentials or we tried too many times. Authentication failed
我究竟做錯了什麼?
主要問題:
用於基本 Apache 身份驗證的 AuthUserFile不能是格式的純文字文件
user = password
,而是由 htpasswd 準備的特殊格式的文件。您的 current
users.txt
僅可用於基於 svnserve 的儲存庫、svn://
協議,而不是 http(s)://。結果,Apache 無法找到使用者super
(實際上是任何使用者)並對其進行身份驗證小故障:
訪問權限
AuthzSVNAccessFile
從父節點繼承到子節點,因此:如果您有[/] @admin = rw
您不能為根節點下的單個儲存庫和指定儲存庫內的路徑複製此規則