您的位置:首页 > 运维架构 > Linux

linux下svn配置参数详解

2014-08-08 19:42 204 查看
(1)svnserve.conf: svn服务配置文件,存储普通的配置信息。 [root@centos conf]# vi svnserve.conf

如果把其中的[#anon-access = read]前面的#和空格去掉即代表匿名用户有读的权限,如果修改为[anon-access = write]则代表匿名用户有写的权限,如果修改为[anon-access = none]则代表匿名用户没有任何权限。 注:对于[anon-access]和[auth-access]中的权限,write代表可以Checkout、Update、Commit和删除操作,read代表可以Checkout和Update,none代表没有任何权限,匿名用户的话只须修改这一项内容即可;password-db/authz-db分别为权限管理文件,若为同一目录下,则只有写名字,不同目录,则要写路径;下面介绍针对授权用户的权限修改。

(2)passwd: 用户名口令文件。

[root@centos conf]# vi passwd

注:打开passwd文件前,注意这时虽然添加有授权用户,但是基本配置文件中没有启动该功能,所以要在基本配置文件[svnserve.conf]中修改如下权限: [anon-access = none]:匿名用户没有任何权限;[auth-access = write]:所有授权用户均有写的权限;[password-db = passwd]:启用登陆验证功能(加上#即是屏蔽该功能);保存修改过的[svnserve.conf]文件后,重新启动服务后,如果再想CheckOut或者Commit都必须由授权用户验证登陆后来完成了

(3)authz: 权限配置文件。

上面介绍的是对所有授权用户的权限进行管理,如果有一个项目,需要针对不同组的人分配不同的权限,针对不同文件夹也需要分配不同权限,针对个人也需要分配针对不同文件或根目录的操作权限的话,我们就需要用到[authz]配置文件的内容了。下面针对该文件中的几个操作权限做个简要介绍: [groups]下面可以进行组管理,也就是说可以新建组以及添加组成员; [/foo/bar]是对个人授权用户特定文件夹的权限进行管理,比如针对仓库根目录则是[/],
如果是针对根目录下面的test文件夹则是[/test/]; [respository:/baz/fuz]是对组分配特定文件夹的权限,目录形式同上; 注:目前我们只需要对groups下的用户或目录进行配置。

下面介绍几条权限的分配细则:

1.[svnserve.conf]中的权限高于一切,当启用了授权模式[auth-access]后请屏蔽匿名模式,或者修改匿名模式为[anon-access =none];

2.如果启用了验证或授权模式([passwd]、[authz]),请务必保证[auth-access]的权限不小于你要分配的权限,例如,如果想启用授权用户的Commit和删除权限,请务必保证[svnserve.conf]中授权模式的权限为[auth-access = write]; 3.当启用[authz]授权模式后,请务必同时启用密码验证模式[passwd]; 4.当启用[authz]授权模式后,请务必保证你要使用的用户在[authz]中进行了权限分配;
5.当一个授权用户在[authz]中同时分配了所属组的权限和个人权限,则以最高权限为准; 6.如果针对文件夹进行了授权,请务必保证在Checkout时在仓库地址后加上你所要操作的文件夹路径,比如针对test文件夹操作[svn://192.168.1.36/test];

7.如果你针对文件夹进行了授权,请务必保证在对该文件夹有操作权限的用户第一次对该文件夹进行Checkout时,该文件夹存在。理论介绍到此,下面简单举一个例子来具体说明一下:

现在有9个授权用户(dvlper1、dvlper2、dvlper3、dvlper4、tester1、tester2、tester3、tester4、user),四个组(develop,develop2,test,test2),在[passwd]文件中对9个用户定义密码全部为空,然后在[authz]文件中配置权限如下:

从上图我们知道其中组和个人的权限存在冲突,那么下面具体说明一下每个授权用户的具体权限:

dvlper1:可以对根目录执行Checkout和Update操作;

dvlper2:同dvlper1的权限;、

dvlper3:可以对根目录中所有内容执行Checkout、Update、Commit和删除操作;

dvlper4:同dvlper3的权限;

tester1:同dvlper3的权限;

tester2:只能对根目录下的test文件操作,可以执行Checkout、Update、Commit和删除操作;

tester3:同tester2的权限;

tester4:同tester2的权限;

user:没有任何权限;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: