• (转)基于svnserve的服务器,权限文件authz配置的常见问题及解答


    最近在我用Subversion论坛(http://www.iUseSVN.com/bbs)经常有人提到这样的问题:
    为什么我的客户端没有写权限
    为什么我的权限没有起作用?

    总结他们的配置,发现
    都是用svnserve作为服务器
    都在svnserve.conf中使用了authz-db选项

    原因可能如下:

    1,配置authz时,没有注意svnserve启动参数-r所指定的目录
    这里有两种情况:
    A:-r直接指定到版本库(称之为单库svnserve方式)
    比如,有一个库project1,位于D:\svn\project1
    使用以下命令启动svnserve
    1. svnserve -d -r D:\svn\project1
    复制代码
    在这种情况下,一个svnserve只能为一个版本库工作
    authz文件如果配置成下面这样就是错的,
    1. [groups]
    2. admin=user1
    3. dev=user2
    4. [project1:/]
    5. @admin=rw
    6. @doc=r
    复制代码
    应该配置成
    1. [groups]
    2. admin=user1
    3. dev=user2
    4. [/]
    5. @admin=rw
    6. @doc=r
    复制代码
    因为[project1:/]表示库project1的根目录,而按上面的启动参数,是没有库的概念的。
    使用类似这样的URL:svn://192.168.0.1/ 即可访问project1

    B:-r指定到版本库的上级目录(称之为多库svnserve方式)
    同样,有一个库project1,位于D:\svn\project1
    如果使用以下命令启动svnserve
    1. svnserve -d -r D:\svn
    复制代码
    这种情况,一个svnserve可以为多个版本库工作,
    这时如果想限制指定库的指定目录,就应该指定具体的库,像这样
    1. [groups]
    2. admin=user1
    3. dev=user2
    4. [project1:/]
    5. @admin=rw
    6. @doc=r
    复制代码
    如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录
    使用类似这样的URL:svn://192.168.0.1/project1 即可访问project1
    这样的URL:svn://192.168.0.1/project2 即可访问project2

    2,对中文目录进行权限控制时,没有将权限文件authz改为utf-8格式。

    svn对于非英文文件名和目录名使用utf-8格式编码处理,要对中文目录进行正确控制,
    应该使用无BOM的utf-8格式,如何将默认的文件转为utf-8,
    我使用的是UltraEdit的菜单"ASCII to UTF-8 (Unicode Editing)"。在UltraEdit的配置中,可以设置有无BOM

    更多参考文档
    (配置权限控制文件)http://bbs.iusesvn.com/thread-6-1-1.html
    (中文目录权限控制)http://bbs.iusesvn.com/thread-41-1-1.html

    (Apache的单库多库问题)http://bbs.iusesvn.com/thread-158-1-1.html
  • 相关阅读:
    iOS 8以后 定位手动授权问题
    IOS int NSInteger NSNumber区分
    Java基础知识(JAVA集合框架之List与Set)
    Java基础知识(JAVA基本数据类型包装类)
    Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)
    Java基础知识(重载和覆盖)
    Java基础知识(抽象类和接口)
    host文件
    天猫页面显示错位
    专题8:javascript函数详解
  • 原文地址:https://www.cnblogs.com/taobataoma/p/1757703.html
Copyright © 2020-2023  润新知