zoukankan      html  css  js  c++  java
  • svnserve 配置

    2.1 创建仓库
    2.1.1 创建仓库存放目录
    # mkdir -p /opt/svn/{repos,etc}

    2.1.2 创建SVN仓库
    # svnadmin create /opt/svn/repos/source1
    # svnadmin create /opt/svn/repos/source2
    # chown -R svn:svn /opt/svn/

    仓库名称可以根据自己的规划或喜好设定。

    2.2 配置仓库
    SVN的svnserve对于每个仓库,有一个独立的配置文件和独立的用户、权限管理。
    在这里仍然要保持配置文件svnserve.conf的独立,但是用户、权限管理是用统一的一个文件来存储。
    这样方便以后的管理和维护。
    另外要注意,即使svnserve服务已经运行,修改配置文件或者用户、权限管理文件,保存后马上生效,不需要重启服务。

    2.2.1 配置source1仓库
    进入仓库目录
    # cd /opt/svn/repos/source1
    2.2.2 修改配置
    你可以直接删除默认的svnserve.conf文件,然后使用下面的配置:
    # vi svnserve.conf
    [general]
    anon-access = none
    auth-access = write
    password-db = /opt/svn/etc/svn-user.conf
    authz-db = /opt/svn/etc/svn-authz.conf
    realm = My First Repository

    说明:
    anon-access = none #不允许匿名用户访问
    auth-access = write #通过验证的用户可以读和写
    password-db = /opt/svn/etc/svn-user.conf #用户保存文件
    authz-db = /opt/svn/etc/svn-authz.conf #权限管理文件
    realm = My First Repository #仓库名称

    2.2.3 配置source2仓库
    # cd /opt/svn/repos/source2
    2.2.4 修改配置
    你可以直接删除默认的svnserve.conf文件,然后使用下面的配置:
    # vi svnserve.conf
    [general]
    anon-access = none
    auth-access = write
    password-db = /opt/svn/etc/svn-user.conf
    authz-db = /opt/svn/etc/svn-authz.conf
    realm = My Second Repository

    如果有更多的仓库,可以类推配置。

    ----------------------------------------------------------------------
    svnserve.conf的原始内容:

    ..............................略
    ----------------------------------------------------------------------

    3 用户及权限管理

    3.1 用户管理3.1.1 创建用户存储文件
    # vi /opt/svn/etc/svn-user.conf
    3.1.2 设置用户帐号
    [users]
    harry = harryssecret
    sally = sallyssecret
    bote = botessecret

    说明:
    [users] #是必须的,标记为用户配置开始
    harry = harryssecret # harry 是用户名 , harryssecret是密码。注意,是明文密码
    sally = sallyssecret # 同上
    bote = botessecret # 同上

    往后所以仓库的用户都在这里记录就可以了。至于那个用户,允许访问那个仓库,在权限管 理里限制。

    3.2 权限管理3.2.1 创建权限管理文件
    # vi /opt/svn/etc/svn-authz.conf
    3.2.1 设置权限管理
    [groups]
    source1 = harry
    source2 = sally

    [source1:/]

    @source1 = rw
    @source2 = r


    [source2:/]
    @source2 = rw
    bote = rw

    一些提示权限错误的问题

    为什么我的客户端没有写权限?
    为什么我的权限没有起作用?

    总结他们的配置,发现
    都是用svnserve作为服务器,
    都在svnserve.conf中使用了authz-db选项

    原因可能如下:

    1,配置authz时,没有注意svnserve启动参数-r所指定的目录。
    这里有两种情况:
    A:-r直接指定到版本库(称之为单库svnserve方式)
    比如,有一个库project1,位于D:\svn\project1
    使用以下命令启动svnserve

    CODE:
    svnserve -d -r D:\svn\project1

    在这种情况下,一个svnserve只能为一个版本库工作
    authz文件如果配置成下面这样就是错的,

    CODE:
    [groups]
    admin=user1
    dev=user2
    [project1:/]
    @admin=rw
    @doc=r

    应该配置成

    CODE:
    [groups]
    admin=user1
    dev=user2
    [/]
    @admin=rw
    @doc=r

    因为[project1:/]表示库project1的根目录,而按上面的启动参数,是没有库的概念的。

    B:-r指定到版本库的上级目录(称之为多库svnserve方式)
    同样,有一个库project1,位于D:\svn\project1
    如果使用以下命令启动svnserve

    CODE:
    svnserve -d -r D:\svn

    这种情况,一个svnserve可以为多个版本库工作,
    这时如果想限制指定库的指定目录,就应该指定具体的库,像这样

    CODE:
    [groups]
    admin=user1
    dev=user2
    [project1:/]
    @admin=rw
    @doc=r

    如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录

    2,对中文目录进行权限控制时,没有将权限文件authz改为utf-8格式。

    svn对于非英文文件名和目录名使用utf-8格式编码处理,要对中文目录进行正确控制,
    应该使用utf-8格式,如何将默认的文件转为utf-8,
    我使用的是UltraEdit的菜单"ASCII to UTF-8 (Unicode Editing)"。

    修改conf\authz文 件如下,主要是路径的修改:

    [groups]
    g_vip = morson
    g_manager = michael
    g_beijing = scofield
    g_shanghai = lincon
    g_headquarters = rory, linda
    g_docs = linda
    #这里多加了一个根目录的权限控制描述
    [/]
    @g_manager = rw
    * =

    #以下部分对路径做了一些修改
    [/arm]
    @g_manager = rw
    * = r

    [/arm/diary/headquarters]
    @g_manager = rw
    @g_headquarters = rw
    @g_vip = r
    * =

    [/arm/diary/beijing]
    @g_manager = rw
    @g_beijing = rw
    @g_vip = r
    * =

    [/arm/diary/shanghai]
    @g_manager = rw
    @g_shanghai = rw
    @g_vip = r
    * =

    [/arm/ref]
    @g_manager = rw
    @g_docs = rw
    * = r

    [arm:/temp]
    * = rw经过这样的修改后,访问时不会再报没有权限的错误,可以定制自己的权限控制了。 中文目录权限的控制

    使用 UltraEdit 将 authz.conf 文件转换成不带 BOM 的 UTF-8 格式

    Subversion对中文目录的支持是非常好的,按照文章中的方法,可以很轻松的进行中文目录的权限控制,
    当然,在保存authz文件时一定不要忘记选择保存为“UTF-8 无BOM”。
  • 相关阅读:
    android4.0 及以上 版本 wifi 和 蓝牙不显示 原因
    AWK命令使用 小结
    Linux xargs命令 小结
    nginx rewrite伪静态配置参数详细说明
    简评file_get_contents与curl 效率及稳定性
    zendstudio 常用快捷键
    PHP字符串三种定义方式
    PHP连贯接口
    yii学习笔记
    PHP中str_replace函数的详解
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400370.html
Copyright © 2011-2022 走看看