• svn部署及对接ldap进行用户统一管理


    svn部署及对接ldap进行用户统一管理

    安装环境

    • 系统版本:Centos7.5
    • 安装方式: yum 安装

    部署SVN

    • 安装svn

      yum -y install subversion
      
      • 1
    • 检查版本

      svnserve --version
      
      • 1

    配置svn

    • 创建svn仓库

      mkdir -p /opt/svn
      
      • 1
    • 创建repo代码库

      svnadmin create /opt/svn/repo
      
      • 1
    • 创建完成后,生成以下文件

      cd /opt/svn/repo
      
      • 1

    image-20220804163402287

    • svn配置文件修改,修改以下参数

      vim /opt/svn/repo/conf/svnserve.conf
      
      • 1
      [general]
      anon-access = none #匿名访问的权限,可以是read,write,none,默认为read
      auth-access = write #使授权用户有写权限
      password-db = passwd #密码数据库的路径
      authz-db = authz #访问控制文件
      realm = repo #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      截图如下:

      image-20220804163940154

    • 启动svn

      svnserve -d -r /opt/svn/ --listen-port=3690 --log-file /tmp/svn.log &
      
      • 1
    • 查看进程

      image-20220804164316268

    至此,svn部署完成,开始对接ldap

    svn对接ldap

    配置sasl

    SASL全称Simple Authentication and Security Layer,是一种用来扩充C/S模式验证能力的机制。
    SASL是一个胶合库,通过这个库把应用层与形式多样的认证系统整合在一起。这有点类似于PAM,但是后者是认证方式,决定什么人可以访问什么服务,而SASL是认证过程,侧重于信任建立过程,这个过程可以调用PAM来建立信任关系。在这里Memcached就是上面提到的应用层,具体的认证交给SASL库,SASL会根据相应的认证机制来完成验证功能
    
    • 1
    • 2
    • 安装sasl

      yum -y install *sasl*
      
      • 1
    • 修改认证方式

      vim /etc/sysconfig/saslauthd
      
      • 1
      将MECH=pam 修改成MECH=ldap
      
      • 1
    • 创建/etc/saslauthd.conf 文件,写入以下内容

      vim /etc/saslauthd.conf
      
      • 1
      ldap_servers: ldap://xxx.xxx.cn:389/
      ldap_bind_dn: cn=admin,dc=xxx,dc=cn
      ldap_bind_pw: xxxxx
      ldap_search_base: dc=xxx,dc=cn
      ldap_filter: uid=%U
      ldap_password_attr: userPassword
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
    • 创建/etc/sasl2/svn.conf文件,写入以下内容

      vim /etc/sasl2/svn.conf
      
      • 1
      pwcheck_method: saslauthd
      mech_list: PLAIN LOGIN
      
      • 1
      • 2
    • 重启saslauthd服务

      systemctl restart saslauthd
      
      • 1

    注: 如果是docker 启动,需要另一种方式启动

     /usr/sbin/saslauthd -m /run/saslauthd -a ldap 
    
    • 1

    测试ldap认证是否配置成功,test是ldap用户名,123456是密码。可以看到ldap配置没有问题

    testsaslauthd -utest -p123456
    0: OK "Success."
    
    • 1
    • 2
    • 修改SVN svnserve.conf 配置文件

    我的SVN仓库地址为/opt/svn/repo,所以服务器配置文件路径为/opt/svn/repo/conf/svnserve.conf

    启用如下配置

    vim /opt/svn/repo/conf/svnserve.conf
    
    • 1
    use-sasl = true
    
    • 1

    注意:使用LDAP认证后,passwd就不再生效了。但是账户权限还是需要在authz中设置。LDAP Server只是验证用户在ldap server上是否存在,但不进行权限限制

    • 修改完svn 配置后需要重启svn

      1. 杀死svn

        killall svnserve
        
        • 1
      2. 启动svn

        svnserve -d -r /opt/svn/ --listen-port=3690 --log-file /tmp/svn.log &
        
        • 1
    • 在authz 中增加用户权限

      vim /opt/svn/repo/conf/authz 
      
      • 1
      [groups]
      repo = zhao.aa,qian.bb
      rrepo = li.cc
      
      [repo:/]
      @repo = rw
      @rrepo = r
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7

      上述权限zhao.aa,qian.bb 拥有读写的权限;li.cc 拥有读的权限

  • 相关阅读:
    [HDLBits] Exams/ece241 2013 q12
    Matlab:在键入时检查语法
    VC++删除文件夹
    XSS | 青训营笔记
    SpringBoot的迭代史,SpringBoot和Spring和Java和Maven和Gradle版本兼容介绍
    【计算机网络微课堂】5.8 TCP的运输连接管理
    利用Nginx正向代理实现局域网电脑访问外网
    如何从华为恢复永久删除的视频?
    2×500kVA(RCS9000)某10kV配电室设计(任务书+说明书+cad图纸)
    平面设计实验七 制作立体系统设置图标
  • 原文地址:https://blog.csdn.net/Tiger_lin1/article/details/126163544