如何做到svn根目录不让访问,但子目录可以访问权限的设置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何做到svn根目录不让访问,但子目录可以访问权限的设置?相关的知识,希望对你有一定的参考价值。

参考技术A

方法如下:

1,如果SVN服务器的用户ID和权限管理是基于操作系统用户的,那么可以通过设置不同操作系统用户对各文件夹的权限来限制;

2,如果SVN服务器的用户ID和权限管理是基于Apache的,那么只能考虑从钩子程序下手了,研究一下pre-commit这个钩子吧,这个钩子是在正式提交操作之前服务器端自动执行的,你可以编写这个钩子,在commit时检查是否删除文件夹,如果是则返回错误信息。

Linux安装svn

Linux搭建SVN

管理员使用说明

1、安装并启动svn服务器

安装svn

启动svnsvnserve -d -r dir(仓库绝对路径)  

注意:dir就是后面的路径是svn服务器根目录,

2、访问项目:

A:匿名访问 read:可读。Write:可读可写。None:无任何权限,默认。

访问权限设置在仓库目录中的配置文件。anon-access = write

B:授权访问read:可读。Write:可读可写。None:无任何权限,默认。授权访问需要设置以下三个文件。

访问权限设置在仓库目录中的配置文件。#auth-access = write

权限文件设置:authz-db = authz  指定访问用户的权限

密码文件设置:password-db = passwd 指定存放授权的用户密码的文件为passwd

下面两个文件的配置格式:

authz: 分组:[groups]

Dev=zs, ls

权限:

     [/]

                  @dev=rw          #表示dev分组人员对于所有目录可读可写

      *=                #表示其他人员不可访问

passwduser=passwd

3、注意eclipse默认是只是用git,不能使用svn,使用SVN需要自己添加svn插件。

离线方式:将eclipse_svn_site插件包放到eclipse目录下,并主动解压,eclipse不会自动解压该压缩包。

在线方式:help->eclipse marketplace 搜:subversionsubeclipse 并安装。

4、发布项目地址:svn://ip/具体仓库地址目录。

5、authz不用分组方法的修改方式

[shop:/]

zs = rw

ls = rw

表示zsls可以访问shop仓库下的所有目录。

6、创建仓库。svnadmin create 仓库根目录。

7、将SVN通过WEB界面去查看管理。

下载httpd服务,centos7httpd服务根目录为:/var/www/html

创建post-commit文件,内容如下

[[email protected] hooks]# cat post-commit

#!/bin/sh

WEB=/var/www/html/Conference/D8101

export LANG=en_US.UTF-8

svn update $WEB --username xxx --password xxx

 

问题1show log没有作者和版本号等信息

解决方法:anon-access = none

          realm = /home/xxx/SITProject

问题2:无法修改日志和作者

解决方法:

mv pre-revprop-change.tmpl pre-revprop-change

chmod 755 pre-revprop-change

脚本里面禁止修改author

看需要修改脚本内容。

以上是关于如何做到svn根目录不让访问,但子目录可以访问权限的设置?的主要内容,如果未能解决你的问题,请参考以下文章

SVN权限问题

svn 服务器端使用之权限管理

SVN的用户访问权限设置

linux系统上svn如何实现权限控制

CentOS 6.5系统上安装SVN服务器端的方法及目录访问权限配置(转总结)

svn可以导出所有文件目录吗?