我需要将 ldap 用户与我正在使用的 RHEL 6.2 服务器上配置的 svn 服务同步。此外,如果能够控制谁可以提交,那就太好了。ldap
正在运行,用户和组正在同步。SVN 也在运行,但只有一个用户是手动配置的。
我已经在 RHEL 框中按以下方式配置了 svn:
## as root
yum install subversion xinetd
# the svn group is an ldap group
adduser -m -g svn -s /bin/bash svn
## as svn
cd
svnadmin create /home/svn/repos
cd repos/conf
vi svnserve.conf # allow auth login
vi passwd # add users
#- svntestuser = svntestuserpassword
## as root
vi /etc/xinetd.d/svnserve
#- service svn
#- {
#- port = 3690
#- socket_type = stream
#- protocol = tcp
#- wait = no
#- user = svn
#- server = /usr/bin/svnserve
#- server_args = -i -r /home/svn
#- }
/etc/init.d/xinetd restart
现在,所有附加用户都必须位于 /home/svn/repos/passwd 文件中。我认为我需要他们与 svn 组或我将为此创建的其他组同步。
如果您对设置有任何改进,我都会认真听取。
谢谢,
编辑 1:我的先决条件是不使用 apache 实例。
编辑 2:看来 sasl authent 可以在 svn 和 ldap 中使用,但还不知道如何使用。
答案1
有两个坏消息要告诉你:
- Svnserve'd Subversion 明确使用自己的内部的用户数据库 (password-db) 和 ACL 文件 (authz-db)
- 您无法从 LAP 导入用户和组自动地改为 authz-db 或使用 LDAP 代替 password-db
有两个好消息要告诉你:
- authz-db 内部您可以定义实体“组”,其中包含最终用户,这些组可用作 ACL 规则中的键(可以完全避免使用单个用户)
- 第三方基于 Python 的单向同步 LDAP 组的脚本
[groups]
authz-db 部分的内容存在,并且可以在网上找到
高血压
编辑:在 Subversion 1.8+ 中,我看到了作为单独实体添加的组文件 - 您可以在此文件中传输所有组定义,而不必担心在组同步时覆盖 authz-db 其余部分中的 ACL 规则