前提:完成svn的基本安装
一、安装sasl相关组件
#yum install -y cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain
二、查看SASL版本和提供的验证模块
#saslauthd -v
三、修改sasl的用户验证方式为ldap
#cp /etc/sysconfig/saslauthd /etc/sysconfig/saslauthd.save #sed -i 's/MECH=pam/MECH=ldap/' /etc/sysconfig/saslauthd
四、修改sasl配置文件(不存在则新建)
#vi /etc/saslauthd.conf (以下信息根据ldap服务来配置) ldap_servers: ldap://192.168.1.2 ldap_bind_dn: cn=chengdu,dc=sichuan,dc=com ldap_bind_pw: xxxxxx ldap_search_base: dc=sichuan,dc=com ldap_filter: uid=%U ldap_deref: never ldap_restart: yes ldap_scope: sub ldap_use_sasl: no ldap_start_tls: no ldap_version: 3 ldap_auth_method: bind ldap_mech: DIGEST-MD5 ldap_password_attr: userPassword ldap_timeout: 10 ldap_cache_ttl: 30 ldap_cache_mem: 32786
五、重启sasl服务,测试是否通过
# systemctl restart saslauthd # testsaslauthd -u 用户 -p 密码
六、修改配置文件svn.conf,不存在则新建,目前不知此文件的作用
#vi /etc/sasl2/svn.conf pwcheck_method:saslauthd mech_list:plain login
七、重启sasl服务,并做好svn的相关配置
#cat svnserve.conf [general] anon-access = none auth-access = write #password-db = passwd authz-db = authz realm = /opt/svn/migu/SPMS [sasl] use-sasl = true
八、测试
当前已切换到LDAP认证,svn服务不再调用passwd文件,也不再使用authz里的用户,但是对LDAP用户的权限控制需要在authz里设置。
a) 以LDAP的一个用户为例(chenhongyuwx),authz不做权限的修改,使用此用户进行访问
使用登录SPMS的密码进行登录
登录失败,没有访问权限
b) authz对chenhongyuwx做只读的权限,使用此用户进行访问
使用登录SPMS的密码进行登录,登录成功,说明chenhongyuwx具有读的权限,符合配置要求
上传文件,使用chenhongyuwx用户commit失败,因为chenhongyuwx只有读权限,没有写权限,符合配置要求
c) authz对chenhongyuwx做读写的权限,使用此用户进行访问
上传文件,使用chenhongyuwx用户commit成功,因为authz为其设置了读写权限。