linux安装svn,配置用户、用户组权限

一、安装svn 

yum -y install subversion

2.安装完成后创建仓库

  svnadmin create  /xx科技

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

 linux安装svn,配置用户、用户组权限_第1张图片

 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”。

你可能感兴趣的:(svn)