linux配置SVN,添加用户,配置用户组的各个权限教程

2020-06-23 16:29:54 浏览数 (1)

前言 今天组长要我给新员工添加svn 的权限,以及赋予他们权限访问指定的目录,于是就顺手写个教程吧,毕竟好记性不如烂笔头

一、xshell登陆服务器

用xshell登陆服务器,cd切换到服务器中svn的项目仓库目录中,然后切换到conf文件中,会看到3个文件,分别是

authz、passwd、svnserve.conf

linux操作熟练的同志们,可以直接在xshell里面操作,通过vi命令分别去修改里面的内容,我是知道命令,但是不太熟练,通过vi操作不怎么方便,于是我这里就偷懒,直接通过sheel里面的【新建文件传输】按钮进入了,然后找到这三个文件,下载下到本地,然后进行编辑操作。


二、编辑svnserve.conf文件,进行svn配置

首先编辑svnserve.conf主配置文件,主要是对以下几项修改

[general]

anon-access = none #取消匿名访问

auth-access = write #授权用户有可写权限

password-db = passwd #指定用户配置文件,后面会用到

authz-db = authz #指定权限配置文件,后面会用到

如果后面大家要用到组权限的话,大家看authz-db = authz 前面应该会有 # 号键,记得去掉,这样才能在下面分配组权限的时候,才能起作用。

三、编辑passwd文件,添加用户

建立svn用户以及密码:

代码语言:javascript复制
[users]
aaa=aaa123
bbb=bbb123
ccc=ccc123
ddd=ddd123

四、编辑authz,配置用户组和权限

配置组:

代码语言:javascript复制
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
总管理员 = admin
开发组 = qqq,www,eee,rrr
运维组 = ttt,yyy,uuu,iii
测试组 = aaa,bbb,ccc,ddd

配置各个组权限:

代码语言:javascript复制
[/]                   #[/]表示是svn根目录,标签后的用户拥有根目录权限
@总管理员 = rw         #分配给总管理员用户组根目录的读写权限
@开发组 = rw           #分配给开发组用户组根目录的读写权限
*=                    #没有分配权限的用户没有读写权限

[/运维知识库]          #根目录下面有一个[运维知识库]文件夹,
@运维组 = rw           #分配给运维组用户组根目录的读写权限
zzz = rq              #分配读写权限给zzz用户,为单个用户分配权限

[/测试知识库]
@测试组 = rw

拓展:这样的目录还是简单的,那假如目录是多级目录呢

helloword仓库:

abc项目

def项目

产品部

开发部

数据部

运维知识库

测试知识库

现在对于def项目中,我不想让产品部的人看到开发部和数据部的目录下面的数据怎么办?可以通过 *= 来设置,没有设置权限的人统统不能访问,* = 这一句的目的,就是割断权限继承性,使得管理员可以定制某个目录及其子目录的权限,从而完全避开其父目录权限设置的影响

五、替换原来的三个conf文件并且重启svn

最后就是将自己修改的svnserve.conf ,passwd,authz 三个目录替换原来的三个文件就可以了

然后用下面的命令重启一下svn

查看svn进程:ps -ef | grep svn

强制杀死进程:kill - 9 进程号

重启svn:svnserve -d -r /opt/svn

最后看看是不是成功了,可以在本地测试一下,看看对应的权限是不是已经有了,不是该组的用户应该不能访问没有赋予权限的目录的


参考文章:

https://blog.csdn.net/xiaoxiangzi520/article/details/81178584

https://blog.csdn.net/zjh_746140129/article/details/81193005

感谢原作者的分享,让技术人能够更快的解决问题

0 人点赞