频道栏目
首页 > 资讯 > Linux > 正文

linux下安装svn,配置用户、用户组权限等操作实例

18-07-26        来源:[db:作者]  
收藏   我要投稿

一、安装svn

yum -y install subversion

2.安装完成后创建仓库

svnadmin create /xx科技

cd /xx科技 ,到仓库目可以看到下面的配置文件

cd /conf 目录

编辑svnserve.conf主配置文件,对以下几项修改如下

[general]

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

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

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

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

编辑passwd文件,建立svn客户端用户以及密码:

[users]
yangfen = 951340
yangzi = 567452
caoweitao = 273621
chenfei = 169673

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

组:

[groups]
总经办 = yangzi
市场运营部 = yangfen
IT开发部 = caoweitao,chenfei

权限:

[xx科技:/]
@总经办 = rw
 
[xx科技:/总经办]
@总经办 = rw
* = 

[xx科技:/市场运营部]
@总经办 = rw
@市场运营部 = rw
* =

[xx科技:/IT中心]
@总经办 = rw
@IT开发部 = rw
@IT产品部 = rw
@IT数据部 = rw
* =

[xx科技:/IT中心/IT开发部]
@总经办 = rw
@IT开发部 = rw
* = 

对于多级目录的分析:

[xx科技:/IT中心/IT开发部]
@总经办 = rw
@IT开发部 = rw
* = 

这里最后一行的 ``* =`` 表示,除了指定组总经办、IT开发部的人员之外,任何人都被禁止访问本目录。这一行是否可以省略呢?不行,因为 **权限具备继承性** ,子目录会自动拥有父目录的权限。若没有这一行,则拥有"IT中心"目录读取权限的人都可以读取 "/IT中心/IT开发部" 目录下的文件。假如我们并没有设置这个目录的父目录权限,可是默认的规则使得 "IT中心"目录的权限与根目录完全一样。所以简单来说, ``* =`` 这一句的目的,就是割断权限继承性,使得管理员可以定制某个目录及其子目录的权限,从而完全避开其父目录权限设置的影响。

在前面的描述中,我们都采用 ``[repos:/some/dir]`` 这样的格式来表示项目的某个目录,比如``[xx科技:/总经办]`` 。而实际上,Subversion允许你采用 ```[/some/dir]`` 这样的格式,即不指定代码库的方式来表示目录,此时的目录就匹配所有项目。

对于使用 svnserve 的用户来说,只有当 svnserve 运行的时候使用了 ``-r`` 参数,并且让多个代码库共享同一个目录权限文件(即 authz.conf 或 authz)时,不指明代码库名称才有可能惹麻烦。一般情况下,我们对每个代码库都会独立使用配置文件,毕竟每个项目的目录结构,都有很大不同,混在一起意义不大。因此一般来说,为简洁起见,都可以不指明代码库名称。本文全都指明了代码库名称,主要是为了将来扩展成同一个配置文件,以方便配合 Apache 服务器。

对于使用 Apache 的用户来说,它们二者可有着很大的不同,因为此时往往习惯于使用一个公共的目录权限配置文件。如果你使用了 SVNParentPath 指令,则指定版本库的名字是很重要的,因为假若你使用后者,那么 ``[/some/dir]`` 部分就会与所有代码库项目的``[/some/dir]`` 目录匹配。如果你使用 SVNPath 指令,则这两种表示方式就没有什么区别了,毕竟只有一个版本库。

3.父目录的 ``r`` 权限,对子目录 ``w`` 权限的影响

在1.3.1及其以前的版本里面,有个bug,即某个帐号为了对某个子目录具备写权限,则必须对其父目录具备读权限。因此现在使用了1.3.2及其更高的版本,就方便了那些想在一个代码库存放多个相互独立的项目的管理员,来分配权限了。比如说央舜公司建立一个大的代码库用于存放所有员工日志,叫做 diary,而SVN事业部只是其中一个部门,则可以这样做::

[diary:/]

@g_chief_manager = rw

[diary:/SVN]

@g_SVN_manager = rw

@g_SVN = r

这样,对于所有SVN事业部的人员来说,就可以将svn://192.168.0.1/diary/SVN 这个URL当作根目录来进行日常操作,而完全不管它其实只是一个子目录,并且当有少数好奇心比较强的人想试着 checkout 一下 svn://192.168.0.1/diary 的时候,马上就会得到一个警告“Access denied”。

相关TAG标签
上一篇:App Store十年前最受欢迎的应用程序
下一篇:CentOS6.x配置bond0和CentOS7.x的区别讲解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站