SVN - Linux下SVN详细配置文档

作者: 菩提老鹰 | 来源:发表于2016-07-13 14:20 被阅读208次

    版本库文件说明

    svnadmin create 创建实际的版本库之后,版本库目录下文件如下:

    conf        # 核心配置文件,账号密码权限等配置
    db          # 所有的版本控制的数据文件存放目录
    format      # 文本文件,存放一个代表当前文件库配置的版本号整数
    hooks       # 存放 hook文件的目录
    locks       # 存放SVN锁
    README.txt
    

    Svn server详细配置

    Svn server配置由 conf下面的三个文件共同决定 svnserver.conf  authz  passwd 
    

    svnserver.conf

    vim conf/svnserve.conf
    
    [general]
    # 控制非鉴权用户访问版本库的权限 write/read/none ,默认read
    anon-access = read
    # 控制鉴权用户访问版本库的权限 write/read/none,默认write
    auth-access = write
    # 指定用户密码的文件名,可以指定绝对路径,相对路径为conf/下
    password-db = passwd
    # 指定用户权限认证的文件名,可以指定绝对路径,相对路径为conf/下
    authz-db = authz
    # 版本库认证域
    # 如果两个版本库的认证域一样,建议使用相同的用户名和密码
    # 默认值为一个UUID(Universal Unique IDentifier 全局唯一标示)
    realm = My First Repository
    # 
    force-username-case = none
    
    [sasl]
    # 是否开启SASL认证
    use-sasl = true
    # 指定加密强度
    min-encryption = 0
    max-encryption = 256
    

    authz

    包括三个部分,别名和权限分组,以及具体的版本库分支权限
    别名aliases 
        others
    分组group
        [groups]
        Groupname = username1, username2, username3, …, usernameN
    版本库路径权限
        格式:
        [<版本库名>:<路径>]
        <username> = <privilege>
        <@groupname> = <privilege>
    * = <privilege>
    
    说明:
        1,Privilege取值为 ‘’, ‘r’, ‘rw’
        2,每一行只能单独配置一个用户或者用户组权限
        3,如果省略<版本库名>则<路径>对 所有版本库中相同路径都有相同权限
        4,注意这里groupname前面红色的 @ 是必须的,也是组区别于用户的标识
    举例:
        [/jupei/public]
        Liuchao = rw
        @developers = rw
        * = 
    

    passwd

    按照下面的格式配置用户对应的密码,建议密码采用12位长度符合一定复杂度的密码
    [users]
    Username = passwd
    

    多版本库实例

    # svn 服务根目录
    mkdir /opt/svnrepos
    cd /opt/svnrepos
    
    # SVN 多版本控制共享配置文件
    mkdir conf  
    svnadmin create repos1
    svnadmin create repos2
    
    # 删除各自的控制文件,新增共享配置
    rm –rf repos1/conf/passwd repos1/conf/authz repos2/conf/passwd repos2/conf/authz
    touch conf/passwd conf/authz
    
    # 配置各自svnserve.conf,只有 realm配置不一样
    

    Svnserve.conf

    Repos1:

    [general]
    anon-access = none
    auth-access = write
    password-db = ../../conf/passwd
    authz-db = ../../conf/authz
    realm = My repos1
    

    Repos2:

    [general]
    anon-access = none
    auth-access = write
    password-db = ../../conf/passwd
    authz-db = ../../conf/authz
    realm = My repos2
    

    conf/passwd

    [users]
    Liuchao = lc123
    Betty = bt123
    James = jm123
    Mark = mk123
    

    conf/authz

    [groups]
    admin = liuchao
    developers = betty, james
    
    # 除了admin分组有rw权限,别的用户对根’/’ 都没有权限
    # 也就是 admin 对根下所有版本库都有权限
    [/]
    *= 
    @admin = rw
    
    # 版本库1
    [repos1:/]
    @developers = rw
    
    [repos1:/public]
    mark = rw
    
    # 版本库2
    [repos2:/]
    mark = rw
    

    说明:

    Admin组对所有版本库具有rw权限
    Developers 组对版本库1 的根具有 rw权限
    Mark用户对 版本库1的public具有rw ;对版本库2的根具有rw权限
    

    相关文章

      网友评论

        本文标题:SVN - Linux下SVN详细配置文档

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