免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5660 | 回复: 0
打印 上一主题 下一主题

SVN服务器之用户权限配置——authz文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-26 22:04 |只看该作者 |倒序浏览


  Normal
  0
  
  7.8 磅
  0
  2
  
  false
  false
  false
  
   
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4



st1\:*{behavior:url(#ieooui) }
/* Style Definitions */
table.MsoNormalTable
        {mso-style-name:普通表格;
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
        mso-para-margin:0cm;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";
        mso-ansi-language:#0400;
        mso-fareast-language:#0400;
        mso-bidi-language:#0400;}
本文主要是分析SVN服务器中用户权限的配置,作为SVN服务器基本配置的提高篇。如果读者还未了解SVN服务器的基本配置,可以参见本人的另外一篇博文《使用自己的Linux
svnserve服务器》,链接:
http://blog.chinaunix.net/u/33048/showart_1890997.html
,本文中下面简称《基础篇》。
     本文欢迎自由转载,但请标明出处和本文链接,并保持本文的完整性。
     CU:
Godbach
Blog:
http://blog.chinaunix.net/u/33048/index.html
Oct 26,
2009

在实际的项目开发中,有新的成员加入进来。这就需要在SVN服务器上为其添加一个账户。但是,由于某些原因,又不希望该用户能能够读取服务器上的所有文件。这时,就需要为该账户设置一些权限,使之可以去SVN服务器上取下某些特征目录的文件,或者不能取出某些特征目录的文件。如何实现呢?
在本人《基础篇》中讲到了如何配置svnserve.conf和passwd两个文件,而没有讲解authz文件的配置。因为当时搭建的SVN服务器上的所有文件对所有用户可见。本文要讲的就是authz文件的配置管理。该文件就是实现了对SVN用户的分组管理和权限设置。
1. authz文件分析
下面先看一下authz文件的默认内容:
###
This file is an example authorization file for svnserve.
###
Its format is identical to that of mod_authz_svn authorization
###
files.
###
As shown below each section defines authorizations for the path and
###
(optional) repository specified by the section name.
###
The authorizations follow. An authorization line can refer to a
###
single user, to a group of users defined in a special [groups]
###
section, or to anyone using the '*' wildcard.
Each definition can
###
grant read ('r') access, read-write ('rw') access, or no access
###
('').

[groups]
#
harry_and_sally = harry,sally

#
[/foo/bar]
#
harry = rw
#
* =

#
[repository:/baz/fuz]
#
@harry_and_sally = rw
#
* = r         
    文件内容上半部分是注释,讲解authz的相关配置方法。大致内容就是该文件可以对普通一个用户、定义的一个用户组或所有的用户进行权限配置。其中用户组通过在[group]这一节定义。随后在设置用户权限的时候,定义在某用户组的用户则用“@用户组名”表示,所有用户通过'*'来表示。注意:该文件中出现的所有用户名都需要在passwd文件中定义过了。
用户的权限就分只读('r')、读写('rw')和禁止访问('')。
       这里要补充说明的是authz文件中对版本库路径的表示方法。用'[/]'来表示版本库的根目录,如果有子目录foo,设置该目录权限时用'[/foo]'即可,其他任何目录都以'/'为版本根目录进行表示。
2. 举例
       在举例之前,我们要先修改svnserve.conf文件。《基础篇》没有讲解authz的配置,svnserve.conf中并没有开启authz的验证功能,这部分内容如下:
### The authz-db option
controls the location of the authorization
### rules for path-based
access control.  Unless you specify a
path
### starting with a /, the
file's location is relative to the the
### directory containing
this file.  If you don't specify an
### authz-db, no path-based
access control is done.
### Uncomment the line
below to use the default authorization file.
#authz-db = authz
       因此,这里需要先做关键的一步,开启authz的验证功能,即删除注释符'#'即可:
       authz-db
= authz
这样,当有用户访问版本库的时候,就会触发到svnserve.conf配置文件中的这一行,进而会进到atuhz文件中就验证。
下面开始我们的举例分析。假设我们在passwd定义了如下用户:
[users]
harry = harrypasswd
sally = sallypasswd
john = johnpasswd
       版本库根目录下有3个子目录,分别为foo,secret1, secret2。对于harry和sally,我们只想让他们对foo有读写权限,对secret1有只读权限,对secret2没有读写权限,john有整个版本库的读写权限,则authz文件的配置如下:
[groups]
grp_limit = harry,sally

[/]
* = rw

[/secret1]
@grp_limit = r
[/secret2]
@grp_limit =

       简单说明一下配置。
       我们首先定义了一个特征用户组grp_limit用来表示harry和sally:
       [groups]
grp_limit = harry,sally

因为他们在整个版本库的权限都是一样的。
其次,我们定义所有用户对整个目录有读写权限:
[/]
* = rw
      
很显然,这样设置,保证了用户john所有目的读写权限,也保证了harry和sally对foo目录的读写权限。那么,下一步就是开始对harry和sally进行权限的限制。
设置他们对子目录secret1的只读权限:
[/secret1]
@grp_limit = r
设置他们对不可读取子目录secret2:
[/secret2]
@grp_limit =
可见,设置用户权限的时候,'='左侧代表用户名称,可以是实际用户名,也可以是定义的用户组名,但要用'@'作为前缀,或者是所有用户'*'。'='右侧代表设置的权限'r'、'rw'或者为空即代表用户对于该目录无任何权限。
3. 总结
(1)用户某个目录的权限是向子目录递归的。如果用户对于/foo目录有读写权限,则该用户对于foo目录下的所有子目录都有读写权限。
(2)权限分配,只可以分配到某个目录,而不能到某个文件
参考资料:
1 《svn权限配置文件(authz)分析》 http://blog.csdn.net/saiya_kwok/archive/2009/02/20/3914294.aspx
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/33048/showart_2079175.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP