![通过 Apache 使用 SVN 实现基于 Unix 组的访问控制](https://linux22.com/image/760227/%E9%80%9A%E8%BF%87%20Apache%20%E4%BD%BF%E7%94%A8%20SVN%20%E5%AE%9E%E7%8E%B0%E5%9F%BA%E4%BA%8E%20Unix%20%E7%BB%84%E7%9A%84%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6.png)
我有一个使用 Apache 2 通过 HTTPS 托管的 SVN 存储库。为了统一 SVN 以及服务器上其他服务的访问控制列表,并避免处理用户和组的多个副本,我决定让用户使用 PAM 与其 unix 用户进行身份验证,因此访问控制必须基于他们所属的组
我能够根据以下 Apache 配置控制对整个 SVN 存储库的访问
DefineExternalAuth checkPassword pipe /usr/sbin/pwauth
<Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Repo"
AuthBasicProvider external
AuthExternal checkPassword
AuthzSVNAccessFile /var/svn/authz
Order deny,allow
Require unix-group svngroup
</Location>
然后,为了尝试微调存储库本身的访问控制列表,我设置了以下授权
[therepo:/]
@svngroup = rw
[therepo:/restricted_files]
@svngroup =
@vipgroup = rw
但是,这会失败,并且整个存储库将被限制给所有用户,无论他们属于哪个组。我在日志中收到以下错误
Failed to load the mod_authz_svn config: Error while parsing config file: '/var/svn/authz': Access entry refers to undefined group '@svngroup'
这告诉我它没有识别出 svngroup 是一个有效的 unix 组。有什么解决办法吗?还是我被迫拥有用户和组定义的多个副本?