一、xshell登陆服务器
用xshell登陆服务器,cd切换到服务器中svn的项目仓库目录中,然后切换到conf文件中(也可使用xftp),会看到3个文件,分别是
authz、passwd、svnserve.conf
二、编辑svnserve.conf文件,进行svn配置(权限不变时无需修改)
首先编辑svnserve.conf主配置文件,主要是对以下几项修改
[general]
anon-access = none #取消匿名访问
auth-access = write #授权用户有可写权限
password-db = passwd #指定用户配置文件,后面会用到
authz-db = authz #指定权限配置文件,后面会用到
如果后面大家要用到组权限的话,大家看authz-db = authz 前面应该会有 # 号键,记得去掉,这样才能在下面分配组权限的时候,才能起作用。
三、编辑passwd文件,添加用户
建立svn用户以及密码:
[users]
aaa=aaa123
bbb=bbb123
ccc=ccc123
ddd=ddd123
四、编辑authz,配置用户组和权限
配置组:
[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
配置各个组权限:
[/] #[/]表示是svn根目录,标签后的用户拥有根目录权限
@总管理员 = rw #分配给总管理员用户组根目录的读写权限
@开发组 = rw #分配给开发组用户组根目录的读写权限
*= #没有分配权限的用户没有读写权限
[/运维知识库] #根目录下面有一个[运维知识库]文件夹,
@运维组 = rw #分配给运维组用户组根目录的读写权限
zzz = rq #分配读写权限给zzz用户,为单个用户分配权限
[/测试知识库]
@测试组 = rw
五、重启svn
保存修改后的svnserve.conf ,passwd,authz 三个文件
然后用下面的命令重启一下svn
查看svn进程:ps -ef | grep svn 或者 ps aux | grep svn
强制杀死进程:kill -9 进程号
重启svn(/home/svn为自己的目录地址):svnserve -d -r /home/svn
六、切换SVN用户测试登录
最后看看是不是成功了,可以在本地测试一下,看看账户是否可用,对应的权限是不是已经有了,不是该组的用户应该不能访问没有赋予权限的目录的
-
在使用svn更新或提交数据时需要输入用户名和密码,在输入框中可以选择是否记录,以便下次操作无需再次输入用户名和密码;
-
要切换其他用户名时,需要删除已记录用户的数据,在电脑桌面上右击,依次点击菜单项TortoiseSVN--设置;
-
在设置界面中,左侧有很多菜单,找到【已保存数据】项;
-
进入已保存数据的操作界面,点击清除按钮;
-
在删除选择框中选择svn.simple项目,然后确定;再次更新或提交数据时就需要重新验证用户名和密码了;
-
在已保存数据界面也可以直接点击清除全部按钮,清楚所有已记录的数据;
-
清除全部已记录数据后,在更新或提交数据时,会有证书失败失败,不用担心,选择永久接受凭证即可,以后再次操作就不会有提示了。
拓展:用户组和权限目录是多级目录情况
helloword仓库:
abc项目
def项目
产品部
开发部
数据部
运维知识库
测试知识库
现在对于def项目中,我不想让产品部的人看到开发部和数据部的目录下面的数据怎么办?可以通过 = 来设置,没有设置权限的人统统不能访问, = 这一句的目的,就是割断权限继承性,使得管理员可以定制某个目录及其子目录的权限,从而完全避开其父目录权限设置的影响