转载自

我们对项目根目录做了限制,该目录只允许arm事业部的经理才能修改,其他人都只能眼巴巴的看着:

[arm:/]
@g_manager = rw
* = r

[arm:/] 表示这个目录结构的相对根节点,或者说是 arm 项目的根目录
这里的 @ 表示接下来的是一个组名,不是用户名。你当然也可以将 @g_manager=rw 这一行替换成 michael=rw ,而表达的意义完全一样。
*表示“除了上面提到的那些人之外的其余所有人”,也就是“除了部门经理外的其他所有人”,当然也包括总经理那个怪老头
* = r 则表示“那些人只能读,不能写”
4   authz.conf 之项目子目录
然后,我们要给总部人员开放日志目录的读写权限:

[arm:/diary/headquarters]
@g_manager = rw
@g_headquarters = rw
@g_vip = r
* =

我敢打赌,设计svn的家伙们,大 部分都是在 unix/linux 平台下工作,所以他们总喜欢使用 / 来标识子目录,而完全忽视在 MS Windows 下是用 \ 来做同样的事情。所以这儿,为了表示 arm\diary\headquarters 这个目录,我们必须使用 [arm:/diary/headquarters] 这样的格式。这里最后一行的 *= 表示,除了经理、总部人员、特别人士之外,任何人都被禁止访问本目录。这一行是否可以省略呢?之所以这儿需要将 @g_vip=r 一句加上,就是因为存在上述这个解释。如果说你没有明确地给总经理授予读的权力,则他会和其他人一样,被 * 给排除在外。如果众位看官中间,有谁玩过防火墙配置的话,可能会感觉上述的配置很熟悉。不过这里有一点与防火墙配置不一样,那就是各个配置行之间,没有 先后顺序 一说。也就是说,如果我将本段配置的 *= 这一行挪到最前面,完全不影响整个配置的最终效果。请注意这儿,我们并没有给 arm\diary 目录设置权限,就直接跳到其子目录下进行设置了。我当然是故意这样的,因为我想在这儿引入“继承”的概念。权限具备继承性 任何子目录,均可继承其父目录的所有权限,除非它自己被明确设置了其他的权限。也就是说,在 arm 目录设置权限后, arm\diary 目录没有进行设置,就意味着它的权限与 arm 目录一样,都是只有经理才有权读写,其他人只能干瞪眼。【 * = 是否可以省略】【用例子引入覆盖】【单用户权限的继承问题】【父目录权限集成与全面覆盖问题】现在来看看好了,我们现在掌握了“继承”的威力,它让我们节省了不少敲键盘的时间。可是现在又有一个问题了,属性具备覆盖性质子目录若设置了属性,则完全覆盖父目录。

5   authz.conf 的其他注意点
父目录的 r 权限,对子目录 w 权限的影响
把 这个问题专门提出来,是因为在1.3.1及其以前的版本里面,有个bug,即为了子目录的写权限,项目首目录必须具备读权限。因此现在使用了1.3.2版 本,就方便了那些想在一个代码库存放多个相互独立的项目的管理员,来分配权限了。比如说央舜公司建立一个大的代码库用于存放所有员工日志,叫做 diary,而arm事业部只是其中一个部门,则可以这样做:

[diary:/]
@g_chief_manager = rw
[diary:/arm]
@g_arm_manager = rw
@g_arm = r

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

默认权限
如果说我对某个目录不设置任何权限,会怎样?马上动手做个试验,将:

[diary:/]
@g_chief_manager = rw

改成:

[diary:/]
# @g_chief_manager = rw

这样就相当于什么都没有设置。在我的 svn 1.3.2 版本上,此时是禁止任何访问。也就是说,如果你想要让某人访问某目录,你一定要显式指明这一点。这个策略,看起来与防火墙的策略是一致的。

只读权限带来的一个小副作用
若设置了:

[arm:/diary]
* = r

则svnserve认为,任何人,都不允许改动diary目录,包括删除和改名,和新增。

也就是说,如果你在项目初期创建目录时候,一不小心写错目录名称,比如因拼写错误写成 dairy,以后除非你改动 authz.conf 里面的这行设置,否则无法利用 svn mv 命令将错误的目录更正。

改进
1   对中文目录的支持
上 午上班的时候,Morson 来到 Michael 的桌子前面,说道:“你是否可以将我们的北京办、上海办目录,改成用中文的,看着那些拼音我觉得很难受?” Michael 心想,还好这两天刚了解了一些与 unicode 编码相关的知识,于是微笑地回答:“当然可以,你明天下午就可以看到中文目录名称了。”

使用 svn mv 指令,将原来的一些目录改名并 commit 入代码库,改名后的目录结构如下:

arm
├─工作日志
│  ├─总部人员
│  ├─北京办
│  └─上海办
├─公司公共文件参考目录
└─临时文件存放处

修改代码库的 authz.conf 文件,将相应目录逐一改名

使用 UltraEdit 将 authz.conf 文件转换成不带 BOM 的 UTF-8 格式

将 配置文件转换成 UTF-8 格式之后,Subversion 就能够正确识别中文字符了。但是这里需要注意一点,即必须保证 UTF-8 文件不包含 BOM 。BOM 是 Byte Order Mark 的缩写,指 UNICODE 文件头部用于指明高低字节排列顺序的几个字符,通常是 FFFE ,而将之用 UTF-8 编码之后,就是 EFBBBF 。由于 UTF-8 文件本身不存在字节序问题,所以对 UTF-16 等编码方式有重大意义的 BOM,对于 UTF-8 来说,只有一个作用——表明这个文件是 UTF-8 格式。由于 BOM 会给文本处理带来很多难题,所以现在很多软件都要求使用不带 BOM 的 UTF-8 文件,特别是一些处理文本的软件,如 PHP、 UNIX 脚本文件等,svn 也是如此。

目前常用的一些文本编辑工 具中,MS Windows 自带的“记事本”里面,“另存为”菜单保存出来的 UTF-8 格式文件,会自动带上 BOM 。新版本 UltraEdit 提供了选项,允许用户选择是否需要 BOM,而老版本的不会添加 BOM。请各位查看一下自己常用的编辑器的说明文件,看看它是否支持这个功能。

利用 UltraEdit ,我们可以将 BOM 去掉。方法是,首先利用“UTF-8 TO ASCII”菜单将文件转换成本地编码,通常是GB2312码,然后再使用“ASCII TO UTF-8(UNICODE Editing)”来转换到 UTF-8 即可。

SVN authz 配置详解 转载相关推荐

  1. ntp 配置详解(转载后整理汇总)

    ntp 配置详解 一.时间和时区 在LINUX系统中,有许多场合都使用时间戳的方式表示时间,即从1970年1月1日起至当前的天数或秒数. 世界遵循一个标准UTC,中国的标准是CST(北京时间)中国处于 ...

  2. gps定位服务器文件,通用GPS配置文件 GPS.conf 文件配置详解(转载)

    个教程适应任何带有GPS功能的手机.智能移动定位设备. 在论坛看到关于GPS.conf文件修改的文章后发现这个配置文件可以优化,且给愿意了解配置文件工作原理的朋友讲解文件工作原理. 如果对于教程本身不 ...

  3. [转载]VirtualBox网络配置详解

    标题: [原创]VirtualBox网络配置详解 来自 http://www.linuxsir.org/bbs/showthread.php?p=1800679#post1800679 欢迎转载, 转 ...

  4. (ASA) Cisco Web ××× 配置详解 [三部曲之一]

    (ASA) Cisco Web ××× 配置详解 [三部曲之一] 注意:本文仅对Web×××特性和配置作介绍,不包含SSL ×××配置,SSL ×××配置将在本版的后续文章中进行介绍.   首先,先来 ...

  5. Iptables防火墙配置详解

    iptables防火墙配置详解 iptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. (1)filter表负责过滤数 ...

  6. php-fpm 启动参数及重要配置详解

    2019独角兽企业重金招聘Python工程师标准>>> php-fpm 启动参数及重要配置详解 约定几个目录 /usr/local/php/sbin/php-fpm /usr/loc ...

  7. Maven settings.xml配置详解

    首先:Maven中央仓库的搜索全部公共jar包的地址是,http://search.maven.org/ ===Maven基础-默认中央仓库============================== ...

  8. vue-cli3.0配置详解

    这次给大家带来vue-cli3.0配置详解,使用vue-cli3.0配置的注意事项有哪些,下面就是实战案例,一起来看一下. 新建项目 1 2 3 4 5 6 7 8 # 安装 npm install ...

  9. filebeat配置详解

    filebeat5.x配置详解 https://blog.yuzunzhi.com/filebeat%E9%85%8D%E7%BD%AE%E8%AF%A6%E8%A7%A3/ https://www. ...

最新文章

  1. 细节决定成败(竞赛错题经验总结)
  2. Service Worker
  3. python调用dll时路径问题_IDEA 使用 JNA 时,DLL 文件路径问题
  4. Redis和Memcache的区别总结
  5. zigbee看门狗综合实验_2.5KW风光互补发电教学实验系统,风能太阳能发电实训装置_搜狐汽车...
  6. Qt图形界面编程入门(Qt的历史、Qt安装资源链接、Qt Creator简介)
  7. 华为Mate40 Pro最新渲染图曝光:双孔瀑布屏有戏 再度惊艳
  8. vs code写ipynb怎么添加目录_用Django写招聘网站2——用户系统
  9. Apache Thrift 环境配置
  10. android activity使用,Android Activity使用拾遗
  11. STM32矩阵键盘——行列扫描编码模式
  12. L. Leverage MDT
  13. npcap关闭_npcap是什么软件
  14. 一、简单刷题APP(题库是Excel)之项目功能和效果图
  15. android手机品牌排行,智能手机品牌排行榜2019前十名
  16. hardware用u盘起动_u盘启动dos最简单的的小方法
  17. 【无标题】灵遁者沉思:每个人都有“第三只眼睛”
  18. Cell(华表)组件的方法
  19. 海南省计算机作品大赛,海南省教育研究培训院:关于举办第二十届海南省中小学电脑制作活动的通知...
  20. APP系统开发模式一共有哪几种?

热门文章

  1. 使用gitee镜像加速oh-my-zsh下载与更新
  2. 服务器e7系列cpu,Intel Xeon E7 v4正式发布:首个24核心
  3. 大数据和云计算技术周报(第182期)
  4. 6-1 水仙花数判断 (10分)(函数题)
  5. 二、大数据之Hadoop完全分布式集群搭建
  6. Java网上购物系统源代码
  7. vscode 设置自动换行
  8. 感觉黑客帝国的时代不远了
  9. 云海轻站常见问题整理
  10. python数据匹配,Excel