svn添加用户,权限

来源:互联网 发布:php urlencode 在线 编辑:程序博客网 时间:2024/06/03 00:30

1、查找SVN的安装地址 我的在/opt/svn下面,不知道地址的话find / -name svn可以找到。
2、svn下有个目录conf,命令

cd /opt/svn/conf/

进入,conf中的四个配置文件:
authz hooks-env.tmpl passwd svnserve.conf
       svnserve.conf   #svn版本库配置文件
       passwd      #svn用户配置
       authz       #权限配置
       hooks-env.tmpl  #环境变量配置实例
3、 vi passwd 进到编辑页面,在[users]下添加新增的用户。格式为:

用户名 = 密码
admin = admin
zs = 123
然后Ctrl + C退出编辑模式,Shift+ : ,接着x保存退出。

4、vi authz 进到编辑页面,authz 中主要是分为两类配置:[groups]类配置、以[repo:/]开头的配置。

[groups]的配置很容易理解,就是群组。格式也比较简单,即

“group_name = user1,user2,user3”

如果有多个用户,可以直接通过“,”的方式拼接就可以了,例如:

[groups]
# 经理
g_manager = michael
# 北京办人员
g_beijing = scofield
# 上海办人员
g_shanghai = lincon
# 总部一般员工
g_headquarters = rory, linda

.以[repo:/]开头的配置,上边的[gourps]配置是用来划分用户分组的,那么以[repo:/]开头的配置就是用来具体的划分用户读写权限的了,其中repo是你的库的名字,即上边我们通过

“svnadmin create /home/user/svn/test”

命令所创建的库“test”,下边我们直接用例子来说明它的使用方法:
对项目根目录做限制,该目录只允许经理才能修改,其他人都只能拥有读的权限:

[test:/]   
@g_manager = rw
* = r

“[test:/]” 表示这个目录结构的相对根节点,或者说是 test 项目的根目录。这里的 “@” 表示接下来的是一个组名,不是用户名。因为目前 g_manager 组里面只有一个 michael,你当然也可以将 “

@g_manager = rw” 这一行替换成 “michael = rw”

,表达的意义完全一样。
“*” 表示“除了上面提到的那些人之外的其余所有人”,也就是“除了部门经理外的其他所有人”
“* = r” 则表示“那些人只能读,不能写”。

对于根目录下边的子目录,其权限配置方式是相同的,是需要把地址指明就可以了,即[test:/folder1/folder2],这里就不赘述了。

注意:配置中我们可能会遇到“* =”这样的情况,他的目的是用来隔断权限的继承性。如果在某一级目录的权限配置里加上这一句,则表明除了该配置中的用户之外的其他用户完全没有这一级目录的任何权利,既不可读,更不可写。

当所有权限与用户全都配置完成之后,接下来就是要让它们都生效了,首先我们需要确保svnserve服务已经停掉了,可以通过

ps aux|grep svn

的方式来查看svn时候还在运行,如果还在运行的话直接通过“kill -9 svn进程编号”的方式把它停掉就可以了,然后在通过命令

svnserve -d -r /opt/svn –listen-port 9998
–listen-port 9998 是我指定9998的端口启动,不加上这段默认是3690端口

来重新启动svn服务,以上配置的三个文件就都起作用了!

svn list svn://xx.xxx.x.x/svn

在linux做登录的操作,我测试用下而已

原创粉丝点击