SVN的服务器端用户权限配置

搭建的文章很多了,这里先不整理,今天主要做了一下SVN服务器的配置。

 

第一:用户的配置

 

  SVN和apache整合的话,用户可以直接使用htpasswd dav_svn.passwd_file_address USERNAME来配置。

  而账户的管理可以用dav_svn.authz来配置

  前面那个passwd文件保存的是用户的基本信息,就不列了。而另外那个dav_svn.authz文件的内容如下:

  

[xhtml]  view plain copy
  1. [aliases]  
  2. joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average  
  3.   
  4. [groups]  
  5. sendsrt = root,utt1  
  6. sendsdeveloper = ttt12  
  7. other = seb3  
  8.   
  9. [/]  
  10. @sendsrt = rw  
  11. * =  
  12.   
  13. [test:/]  
  14. @sendrt = rw  
  15. ttt12 =rw  
  16. * =  
  17.   
  18. [utt1:/]  
  19. @sendsrt = rw  
  20. utt1 = rw  
  21. * =  
  22.   
  23. [utt1:/testProject]  
  24. @sendsdeveloper = rw  

  实际上,上面的这个文本已经基本说明了用户权限配置的情况了。[groups]里面表示的是分组信息,每个组=用户

  而下面的[/]表示的是整个SVN的所有库,因为我在apache下面访问的时候的做过别名,所以是http://localhost/svn/

  [test:/]表示的就是test这个库和相对这个库的根目录,实际上代表的是http://localhost/svn/test/

  [utt1:/testProject]其实utt1这个库有地方说的就是这里,http://localhost/svn/utt1/testProject目录,这里控制了sendsdeveloper组成员仅对这个目录具有读写权限。不像http://www.subversion.org.cn/bbs/viewthread.php?tid=520这篇文章的作者的血泪经验,实际上,这样的目录设置是通过了我自己的测试的,这个标志代表的是相对于utt1这个版本库目录下的testProject目录,而那位作者有了问题恐怕是在于他自己签入签出库的时候使文件夹出了问题吧。

  权限上,r,w分别表示读写,下面那个* = 表示除了上面写的之外,都没有任何权限,因为svn的目录权限也是继承的,如果不禁的话,父目录有权限的话,子目录会自动继承。另外,这个 *=在一个库的权限设置里面放在第一行和最后一行是没有区别的。

   另外,还需注意的是,即时在Windows下,设置这个也必须使用/而非/。

 

 

最后,如果要配置SVN下的中文支持的话,请参考这一段:

[xhtml]  view plain copy
  1. 对中文目录的支持  
  2. ----------------  
  3.   
  4. 上午上班的时候,Morson 来到 Michael 的桌子前面,说道:“你是否可以将我们的北京办、上海办目录,改成用中文的,看着那些拼音我觉得很难受?” Michael 心想,还好这两天刚了解了一些与 unicode 编码相关的知识,于是微笑地回答:“当然可以,你明天下午就可以看到中文目录名称了。”  
  5.   
  6. 1. 使用 svn mv 指令,将原来的一些目录改名并 commit 入代码库,改名后的目录结构如下::  
  7.   
  8.     arm  
  9.     ├─工作日志  
  10.     │ ├─总部人员  
  11.     │ ├─北京办  
  12.     │ └─上海办  
  13.     ├─公司公共文件参考目录  
  14.     └─临时文件存放处  
  15.   
  16. 2. 修改代码库的 authz.conf 文件,将相应目录逐一改名  
  17.   
  18. 3. UTF-8 格式的 authz.conf 文件,以及 BOM  
  19.   
  20.    将配置文件转换成 UTF-8 格式之后,Subversion 就能够正确识别中文字符了。但是这里需要注意一点,即必须保证 UTF-8 文件不包含 BOM 。BOM 是 Byte Order Mark 的缩写,指 UNICODE 文件头部用于指明高低字节排列顺序的几个字符,通常是 ``FF FE`` ,而将之用 UTF-8 编码之后,就是 ``EF BB BF`` 。由于 UTF-8 文件本身不存在字节序问题,所以对 UTF-16 等编码方式有重大意义的 BOM,对于 UTF-8 来说,只有一个作用——表明这个文件是 UTF-8 格式。由于 BOM 会给文本处理带来很多难题,所以现在很多软件都要求使用不带 BOM 的 UTF-8 文件,特别是一些处理文本的软件,如 PHP、 UNIX 脚本文件等,svn 也是如此。  
  21.   
  22. 目前常用的一些文本编辑工具中,MS Windows 自带的“记事本”里面,“另存为”菜单保存出来的 UTF-8 格式文件,会自动带上 BOM 。新版本 UltraEdit 提供了选项,允许用户选择是否需要 BOM,而老版本的不会添加 BOM。请各位查看一下自己常用的编辑器的说明文件,看看它是否支持这个功能。  
  23.   
  24. 对于已经存在 BOM 的 UTF-8 文件,比如说就是微软“记事本”弄出来的,我们可以利用 UltraEdit 来将 BOM 去掉。方法是,首先利用“UTF-8 TO ASCII”菜单将文件转换成本地编码,通常是GB2312码,然后再使用“ASCII TO UTF-8(UNICODE Editing)”来转换到 UTF-8 即可。当然,这么操作之前,你肯定得先保证,你的 UltraEdit 保存出来的 UTF-8 文件的确是不带 BOM 的。  

1、 到svn官方网站http://subversion.trigris.org/下载服务器安装包svn-win32-1.6.1.zip,将该压缩包解压到D:\subversion目录下,出现D:\subversion\bin。建立D:\svn,在命令行该目录(D:\subversion\bin\)下输入svnadmin create D:/svn/repos1,如果创建成功,D:\svn下将会多一个repos1目录。 2、 让svnservice服务随Windows系统一起启动,在命令行下输入:sc create svnservice binPath= "\"D:\subversion\bin\svnserve.exe\" --service -r D:\svn" start= auto 3、 权限配置: 在进行权限配置前,所有的用户都能进行任何操作,在很多情况下是不允许的。在创建仓库时,仓库目录(如:D:\svn\repos1)下都会生成好几个文件夹,其中conf里面存储的是配置信息,包括三个文件: authz:访问权限配置 passwd:用户名和密码配置 svnserve.conf:基本配置信息 ⑴先配置svnserve.conf,将里面几项配置前的注释去掉,最后的内容如下: [general] #anon-access = read #auth-access = write password-db = passwd authz-db = authz 这些参数的含义文件里都有详细说明,其中,anon-access和auth-access分别是对匿名用户以及认证用户的访问控制,password- db指明用户密码文件路径,authz-db指明权限配置文件路径。另外还有一个参数realm用于指明仓库所属的认证域,默认情况下每个仓库位于不同的域(每个仓库有一个唯一的uuid),因此我们可以不设置该项,除非多个仓库需要共用同一份passwd配置。 ⑵passwd文件的配置很简单,格式如下(等号前面为用户名,后面为密码): [users] #harry = 123 #sally = 123 sunxiaoyong = 11111111[A1] ⑶authz则可以创建用户组并精确配置某个用户或用户组对某个文件或目录的访问权限,下面是一个例子: [groups] #harry_and_sally = harry,sally [/] sunxiaoyong = rw * = r[A2] #[/project1] #* = #harry = rw #sally = r #[/project1/foo] #sally = #[/project2] #@harry_and_sally = rw #guest = r 文件内容其实很简单易懂,groups用于定义用户组,后面便是对资源的具体访问控制,/表示仓库根目录,*表示所有用户,用户组前面需加上@符号,r表示可读,w表示可写,等号右边为空则表示没有权限。注意对于目录结构,当用户访问某个资源时,SVN会先看有没有直接针对该资源的访问控制,如果没有找到,则会继承上一级目录的访问权限,如此递推。 补充再提一点,当我们有多个仓库时,我们会发现这些仓库的用户帐号在大多数情况下都是相同的,因此,我们可以将passwd文件放到公共的地方,然后将所有仓库的password-db配置都指向该文件。相应的,authz-db也可以共用一个文件,不过需要在配置具体的访问控制时指明所属的仓库,如下: [/] * = r [repos1:/project1] * = r harry = rw [repos2:/project1] * = r sally = rw 上述配置表明,所有人对所有仓库的根目录都有读权限,但只有harry对仓库repos1里的project1有读写权限,只有sally对仓库repos2里的project1有读写权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值