美文网首页日常笔记
ldap实现Linux登录账号统一管理-svn

ldap实现Linux登录账号统一管理-svn

作者: Lisong | 来源:发表于2017-05-07 20:25 被阅读1650次

    安装http 服务

    yum install -y httpd

    检查http是否安装

    httpd -version

    安装httpd支持SVN的模块 mod_dav_svn

    yum install mod_dav_svn -y

    安装成功后,会有mod_dav_svn.so和mod_authz_svn.so两个文件。
    find / -name mod_dav_svn.so
    /usr/lib64/httpd/modules/mod_dav_svn.so
    find / -name mod_authz_svn.so
    /usr/lib64/httpd/modules/mod_authz_svn.so
    
    安装httpd 验证模块 mod_auth_basic

    yum install mod_auth_basic -y

    安装httpd支持openLDAP 的模块

    yum install mod_auth_ldap -y

    安装SVM服务

    • 第一步:通过yum命令安装svnserve,命令如下:
      yum -y install subversion
    • 第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
      mkdir /svnrepos
    • 第三步:创建svn版本库
      在第二步建立的路径基础上,创建版本库
      svnadmin create /svnrepos/dev (dev为你预期的版本库名称,可自定义)
    • 第四步:配置修改
      进入已经创建好的版本库目录下,也就是前文说创建的xxxx
      进入conf
    cd /svnrepos/dev/conf
    conf  db  format  hooks  locks  README.txt
    

    conf目录下,一共存放三份重要的配置文件,如下:

    ls
    authz  passwd  svnserve.conf
    

    authz:负责账号权限的管理,控制账号是否读写权限
    passwd:负责账号和密码的用户名单管理
    svnserve.conf:svn服务器配置文件

    http+svn 的配置

    如果不使用ldap认证,而使用密码文件认证则配置文件可以改为:

    <Location /repos>  
       DAV svn  
       SVNPath /svnrepos/dev  
      
       AuthType Basic  
       AuthName "SVN Authorization Realm"  
         
       #使用htpasswd产生的密码文件  
       AuthUserFile  /svnrepos/dev/conf/passwd 
       #目录分组权限
       AuthzSVNAccessFile /svnrepos/dev/conf/authz  
         
       #允许匿名读取  
       Satisfy Any  
       Require valid-user  
    </Location>  
    
    
    ldap+svn 的配置
    <Location /repos>
        DAV svn
        #svn 路径,如果有多个子项目使用 SVNParentPath
        SVNPath /svnrepos/dev
        SVNListParentPath On
       #svn目录分组权限
        AuthzSVNAccessFile /svnrepos/dev/conf/authz
    
        AuthBasicProvider ldap
        AuthType Basic
        AuthName "Subversion repository"
       #搭建的openldap url地址
        AuthLDAPURL "ldap://192.168.85.129:389/dc=dev,dc=com?uid?sub?(objectClass=*)"
        # 配置 openldap的cn、dc
        AuthLDAPBindDN "cn=admin,dc=dev,dc=com"
        # 配置openldap的管理员密码
        AuthLDAPBindPassword "abc123"
        Require valid-user
    </Location>
    
    
    其他
    1、svn服务器有2种运行方式:独立服务器 和 借助apache。2种方式各有利弊。这里是以apache整合的;
    独立服务的方式为svnserve -d -r  /data1/svnroot  方式启动进程,监听端口为3690 。
    2、svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。默认使用的存储方式也是FSFS方式。
    
    vim /etc/httpd/conf/svnauthz.conf
    [groups]  
    admin=robin,svnadmin,ybk
    [/]
    @admin = rw
    [test:/]
    ybk= rw
    zzy = rw
    
    注:
    1、上面的test对应的是svnadmin下create的目录。
    2、@admin对应的是管理员组,可以再建其他组,如:java_team 、oam、market等。robin、svnadmin、ybk、zzy这些都是用户名 。如果要和ldap进行整合的话,确保这些用户在ldap中存在。
    3、使用if-svnadmin 这类web程序做svn的用户权限管理时,需要确保svnauthz.conf文件对apache用户可写,不然在if-svnadmin修改时不生效。
    4、确保/data1/svnroot目录apache用户可读写或直接属主改过apache,不然在使用TortoiseSVN等程序上传或删除时会提示权限拒绝。
    
    权限配置总结
    用户组格式:
    [groups]
    用户组名 = 用户1,用户2
    其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
    版本库目录格式:
    [版本库:/项目目录]
    @用户组名 = 权限
    用户名 = 权限
    其中,方框号内部分可以有多种写法:
    /,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/home/svnroot/repository。这样,/就是表示对全部版本库设置权限。
    test:/,表示对版本库test设置权限
    权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
    

    SVN其相关组件及用途如下:

    svn
    命令行客户端程序。
    
    svnversion
    此工具用来显示工作拷贝的状态(用术语来说,就是当前项目的修订版本)。
    
    svnlook
    直接查看Subversion版本库的工具。
    
    svnadmin
    建立、调整和修复Subversion版本库的工具。
    
    svndumpfilter
    过滤Subversion版本库转储数据流的工具。
    
    mod_dav_svn
    ApacheHTTP服务器的一个插件,使版本库可以通过网络访问。
    
    svnserve
    一个单独运行的服务器程序,可以作为守护进程或由SSH调用。这是另一种使版本库可以通过网络访问的方式。
    
    svnsync
    一个通过网络增量镜像版本库的程序
    
    apache和svnserver两种方式的访问方法
    http://192.168.1.222/repos,采用了Apache作为服务器的话就可以以这种形式访问,权限由Apache设置。
    svn://192.168.1.222/repos,采用了svnserve作为服务器的话那么就可以采用这种形式访问,它是一种基于TCP/IP的访问方式。权限由仓库的配置文件设置。
    

    相关文章

      网友评论

        本文标题:ldap实现Linux登录账号统一管理-svn

        本文链接:https://www.haomeiwen.com/subject/aekptxtx.html