设为首页 收藏本站
查看: 708|回复: 0

[经验分享] Subversion权限配置的一些参考(纯svn和基于apache)

[复制链接]

尚未签到

发表于 2017-1-14 11:46:01 | 显示全部楼层 |阅读模式
  安全和权限
-          对于以svnserve -d启动的服务器,修改代码库目录/conf/svnserve.conf,主要步骤:(在配置文件中,变量前不要有空格。)
1)        对于svnserve.conf,注意[general]段,其中4项的主要含义:
Ø         anon-access 定义匿名用户的权限(writereadnone)。
Ø         auth-access 定义认证过用户的权限(writereadnone
Ø         password-db 定义用户密码列表文件名
Ø         realm 一般是版本库的uuid。如果有2个版本库的这个属性一样,那么password-db的值也必须一样。反之亦然。
2)        定义用户密码列表文件内容,格式:
[users]
    用户名=密码,注意这个是大小写敏感的。
3)        启动服务器,在提示用户输入安全信息时,缺省是用户的OS的登录名,此时直接提示输入密码。如果密码不对,则会提示输入用户名,然后是密码。
例子:
svnserve.conf
[general]
### 禁止匿名用户访问

anon-access = none
### 验证过的用户具有读写权限

auth-access = write
### 定义用户密码列表文件名文件名为userlist.txt

password-db = userlist.txt
### 定义realm

realm = My First Repository
用户密码列表文件名
userlist.txt
[users]
foxgem1=foxgem1
对于这种方式,无法定义对于代码库下具体目录的权限。如果有这个需要,那么可以采用与Apache2集成的方式解决。
-          对于与Apache2集成的服务器,修改httpd.conf,主要步骤:(需要在Apache2中配置mod_authz_svn,建议先安装Apache2,再安装Subversion。此处主要是利用Apache2对于目录的访问控制,可以从Apache2的手册中获得更多的信息。)
1)        使用htpasswd建立userlist。如果文件不存在,那么使用htpasswd -cm;文件存在,则使用htpasswd -m。其中c代表createm代表使用MD5加密口令。如:
   $ ### First time: use -c to create the file
   $ ### Use -m to use MD5 encryption of the password, which is more secure
   $ htpasswd -cm /etc/svn-auth-file harry
    New password: *****
    Re-type new password: *****
    Adding password for user harry
   $ htpasswd /etc/svn-auth-file -m sally
    New password: *******
    Re-type new password: *******
    Adding password for user sally
2)        httpd.conf中的<location>2种使用方式:
Ø         只允许指定用户
    <Location /svn>
       DAV svn
       SVNParentPath /usr/local/svn
       AuthType Basic

       AuthName "Subversion repository"
       AuthUserFile /etc/svn-auth-file
       Require valid-user
    </Location>
Ø         对于指定操作之外的用户,应用权限认证
    <Location /svn>
       DAV svn
       SVNParentPath /usr/local/svn
       AuthType Basic

       AuthName "Subversion repository"
       AuthUserFile /path/to/users/file
       # 对于get操作之外,需要验证。

       <LimitExcept GET PROPFIND OPTIONS REPORT>
          Require valid-user
       </LimitExcept>
    </Location>
3)        以上2步建立了和svnserve -d相同的访问控制。如果要应用目录控制,那么:
a)         建立目录访问策略文件,文件格式与svnserve.conf的语法类似。对于每个要控制的路径:
[repos-name:path][path]
username= r,rw
如果没有提及用户,那么就没权限;如果指明用户,但是等号右边什么也不写,即是显式的拒绝。如果左边使用*,则表示所有的用户。对于使用了SVNParentPath,需要指明repos-name。否则,可以省略。在文件中还可以使用[groups]建立组,例子:
[groups]
calc-developers = harry, sally, joe
paint-developers = frank, sally, jane
everyone = harry, sally, joe, frank, sally, jane

   
[calc:/projects/calc]
###使用时注意,组名前有@
@calc-developers = rw
[paint:/projects/paint]
@paint-developers = rw
jane = r
b)        <location>中使用AuthzSVNAccessFile,典型的3种配置方式:
方式一:允许匿名存取
<Location /repos>
       DAV svn
       SVNParentPath /usr/local/svn
       AuthzSVNAccessFile /path/to/access/file

    </Location>
方式二:不允许匿名存储

    <Location /repos>
       DAV svn
       SVNParentPath /usr/local/svn
       AuthzSVNAccessFile /path/to/access/file

       # 只有认证用户可以存取

       Require valid-user
       # 认证方式

       AuthType Basic
       AuthName "Subversion repository"
       AuthUserFile /path/to/users/file
    </Location>
方式三:方式12的混合模式

<Location /repos>
       DAV svn
       SVNParentPath /usr/local/svn
       AuthzSVNAccessFile /path/to/access/file

       # 先尝试匿名,如果不行再尝试认证用户

       Satisfy Any
       Require valid-user
       # 认证方式

       AuthType Basic
       AuthName "Subversion repository"
       AuthUserFile /path/to/users/file
    </Location>
例子:
httpd.conf
<Location /repo>
    DAV svn
    svnpath D:/studycases/subversion/repository
    AuthzSVNAccessFile D:/studycases/subversion/pathright.txt
    Satisfy Any
    Require valid-user
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile D:/studycases/subversion/svnuser.txt
</Location>
用户密码列表文件名
svnuser.txt
foxgem:$apr1$kY/…..$rXDeLPlm9b0uacF7zM.dl.
(注意这是使用htpasswd产生的)

目录访问策略文件
pathright.txt

[/project]
foxgem= r
[/test]
foxgem=rw

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-328331-1-1.html 上篇帖子: 关于org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/j 下篇帖子: APACHE + TOMCAT 整合不成功的一个可能原因
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表