当前位置: 首页 > 编程日记 > 正文

Linux (CentOS 7 )下搭建局域网SVN服务器+SVN权限配置

准备

公司内部需要配置局域网SVN,需要在在内部虚拟机服务器搭建,搭建过程做个记录,供参考。
注:如果条件允许,尽量在windows下搭建svn服务器,很省事,尤其是权限配置非常方便又易懂,效果相同

首先需要搭建SVN服务器

如果确认没有svn可以直接进入安装步骤

安装准备

保证当前系统没有安装svn
使用命令,尝试查看是否已经安装了svn

rpm -qa subversion

或者,我们直接在全部文件中查找svn文件夹就可以,使用如下命令查找,任意文件目录下输入

find / -name svn 

如果发现svn文件夹首先要确认是否为svn的文件夹,有些软件内置svn文件夹及相关服务,注意不要看错了。
如:
clipboard.png

下面几行的svn是在redmine下的svn所以它是不需要进行处理的,若存在svn,则进行删除或者卸载。
如果是压缩包安装只许删除所有相关文件

rm -rf [目标文件夹]

如果使用的是yum安装则:

yum remove subversion

出现确认输入y 即可,直至卸载完成
使用命令

rpm -qa subversion

没有出现svn版本说明卸载成功

SVN安装

分别执行如下命令(安装必须在联网情况下完成)安装svn和相关依赖包

yum install subversion
yum install mod_dav_svn
yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql

安装完成后进行确认是否安装成功,根目录下输入

cd /etc/httpd/modules

执行

ls | grep svn

出现如下内容即可
mod_authz_svn.so
mod_dav_svn.so

到此为止svn服务器基本安装完成

SVN配置

创建代码库

新建一个目录用于版本库,存放版本库信息(这一步可以省略)

mkdir -p /usr/local/svn/repo

创建一个版本库

svnadmin create /usr/local/svn/repo

上面的位置就是版本库的位置,文件内存放该版本库的相关信息

用户配置以及配置文件的修改

进入配置文件目录

cd /usr/local/svn/repo/conf

修改svnserve.conf 去掉下面几列的注释

[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

分别解释一下上面四行的意思

  1. anon-access 控制非鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值为read
  2. auth-access 控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值:write
  3. password-db 指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf目录的相对路径。缺省值:passwd
  4. authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。除非指定绝对路径,否则文件位置为相对conf目录的相对路径。缺省值:authz

修改passwd 文件,这个文件是存储所有账号和密码的

打开文件添加账户信息

[user]
admin = 123456
root = root

admin为登陆的用户名,123456是密码,使用回车分割用户

修改authz文件 ,该文件是进行用户分组和权限配置的

在[/]下添加

[/]
admin = rw
root = rw
* = r 

解释一下啊上面的配置
admin用户具有根目录下所有文件的rw(read,write)读写 权限,其他用户用*代替,其他用户只有读的权限

至此svn服务器的基本配置和用户配置已经完成
可以在svn客户端访问地址

svn://ip

注意我们使用的是svn协议来完成svn库的访问

分组和文件夹权限的配置

实际开发中会使用不同的分组来分类svn账号,进而实现权限控制
对用户进行分组,authz文件中的[groups]下添加,多个组员之间用 “,” 隔开

[groups]
group1 = admin
group2 = root

上面就是把amdin分到group1组,root分到group2组
在[/]下添加

[/]
@group1= rw
@group2 = rw
* = r 

可以批量对组的权限进行控制

文件夹权限配置

假设我们在版本库根目录下有两个文件夹分别为 user 和 project文件夹
现在设置user文件夹只有group1组的人员可以进行读写,其他用户组只可读,project文件夹只有group2组可以读写,group1组只有读权限,并且其他用户不可见(注意最后一行)
我们可以在authz文件中添加如下配置

[/user]
@group1 = rw
* = r[/project]
@group2 = rw
@group1 = r
* = 

注意:对文件夹权限进行配置的时候,仓库里有多少个文件夹, 就得为每一个文件夹都分配权限,不然不起作用

完~

相关文章:

mysql事件探查器_【干货】Mysql的事件探查器-之Mysql-Proxy代理实战一(安装部署与实战sql拦截与性能监控)...

1:资料参考https://blog.csdn.net/coldljy/article/details/3168906https://www.cnblogs.com/jwentest/p/8552075.htmlhttps://www.cnblogs.com/ExMan/p/10396298.html一:原理Mysql-Proxy是一个处于你的client端和Mysql Server端之间的一个简单程序,它可…

【青少年编程】【蓝桥杯】绘制莲花图形

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 我们将有关编程题目的教学视频已经发布到抖音号21252972100,小马老…

问题总结两天来两场实习面试(中科创达、华为)

查了好多资料,发现还是不全,干脆自己整理吧,至少证保在我的做法正确的,以免误导读者,也是给自己做个记录吧! 昨天下午去的中科创达口试 今天下午刚刚结束为华的练习生口试,月五二号去上机试笔&a…

不想被问年终奖?2018年春节自救攻略来了!

转眼间,春节即将来临!当然按捺不住那颗归家的心~但是想到回家,就要接受来自七大姑八大姨的亲切问候,美好的假期变得不怎么美好了,瞬间忧伤起来~对象难找、年终奖少,当被七姑八姨问起时,内心总会产生抵触情绪…

mysql complete_mysql 无意重启 [Note] /usr/sbin/mysqld: Normal shutdown

情况:今早发现,昨天下午安装的4台mysql服务器,突然出现,由于在shell窗口(rootlocalhost:mysql.sock) [(none)]> 190102 18:12:16 mysqld_safe mysqld from pid file /home/data/mysqldata/3306/data/mysql3.pid ended什么情况&…

redis 数据结构 内存管理 持久化

为什么80%的码农都做不了架构师?>>> Redis 内存数据结构与编码 OBJECT encoding key、DEBUG OBJECT key简单动态字符串(simple dynamic string)链表(linked list)字典(dict)跳表&am…

【青少年编程】【蓝桥杯】水仙花数

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 我们将有关编程题目的教学视频已经发布到抖音号21252972100,小马老…

本地 无法启动 SQL Server 错误代码126

Windows 不能在 本地计算机 启动 SQL Server 。错误代码126. 2008 R2 配置工具 VIA设置禁用。 然后重启一下服务 转载于:https://www.cnblogs.com/wuxinyu/archive/2013/05/08/3068008.html

mysql 表的继承,MySQL是否支持表继承?

I have this code in PostgreSQLCREATE TABLE first (id serial,primary key(id));CREATE TABLE second (primary key(id)) INHERITS (first);What is the equivalent code for MySQL?解决方案MySQL does not support table inheritance. The only way to approximate the fun…

C#编程概念系列(一):面向对象编程

系列文章索引目录:http://www.cnblogs.com/loner/archive/2013/05/09/3068211.html 引子: 面向对象编程:这个在当下已不是什么时髦的概念,但通过自己的语言组织描述出来可能会有点意外的收获! 记得最近看的乔布斯在199…

【青少年编程】【四级】数字反转

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 我们将有关编程题目的教学视频已经发布到抖音号21252972100,小马老…

【对讲机的那点事】关于对讲机锂电池你了解多少?

在对讲机日常使用中,对讲机电池是属于损耗件,随着使用时间、频率的增加会减弱其使用性能; 锂离子聚合物电池成为领先的电池技术,它具有不容忽视的优势,但是你究竟对锂离子电池有多少了解呢? 较高的电能重量…

mac mysql5.7 my_【mysql】Mac下安装mysql5.7 完整步骤,大坑已解决

最近使用Mac系统,准备搭建一套本地web服务器环境。因为Mac系统自带PHP和apach,但是没有自带mysql,所以要手动去安装mysql,本次安装mysql最新版5.7.17。1.官网下载点击上面的地址,会看到如下图的页面。你可能不知道该下…

【数学基础】校招算法工程师笔试题

请留言,说出你的解题思路和答案。稍后,我会把参考答案发到留言区。不定期整理相关的问题答案分享。 1、下列矩阵的主元列为() A[000111001123]A\begin{bmatrix}0&0&0&1\\1&1&0&0\\1&1&2&3\e…

IOS6.0 应用内直接下载程序 不需跳转AppStore

闲来没事看了篇文章 应用内创建应用商店环境,不跳转AppStore. 先武断的想一句:放屁。然后好奇的进去看看,原来是IOS6.0的新特性,顿感惭愧。研究下 SKStoreProductViewController类是UIViewController的子类, 如果你对view control…

python语言基础汇总

注释 代码中添加注释是一个良好的编程习惯,python语言的注释才用井号#作为注释开头的,可以是任意内容,解释器会忽略掉这部分内容。其他每一行都是语句,当语句以冒号:结尾时,缩进的语句视为代码块。 数据类型 python中有…

docker安装mysql5.7_超详细Docker安装Mysql5.7并进行挂载

1、下载mysql 5.7镜像docker pull mysql:5.72、创建mysql容器并启动docker run -d -p 3306:3306 -e MYSQL_USER"ppx" -e MYSQL_PASSWORD"123456" -e MYSQL_ROOT_PASSWORD"123456" --name mysqltest1 mysql:5.7 --character-set-serverutf8 --col…

SQL查询语句 select 详解

查询select: 1。单表查询 2。多表查询 3。嵌套查询分类 1)单表查询 2)多表查询 A.连接查询 B.子查询 ①一般子查询 ②相关子查询***************************************SQL查询语句《一》:单表查询1.查询全部记录:select * from…

【青少年编程】【蓝桥杯】绘制扇子

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 我们将有关编程题目的教学视频已经发布到抖音号21252972100,小马老…

centos 7.2 yum mysql_20191209_Centos7.2使用yum安装mysql

1. 下载mysql的rpm包[rootizwz91qnvovd6suufon1ccz ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm2. 安装rpm包[rootizwz91qnvovd6suufon1ccz ~]# yum localinstall -y mysql57-community-release-el7-7.noarch.rpm3. 安装mysql 5.7[rootizwz…

activity 的属性android:taskAffinity和android:allowTaskReparenting

1.清单文件中,activity 的属性 android:allowTaskReparenting 这个属性用于设定Activity能够从启动它的任务中转移到另一个与启动它的任务有亲缘关系的任务中,转移时机是在这个有亲缘关系的任务被带到前台的时候。如果设置了true,则能够转移…

数据库内核月报 - 2017年12月

#01 MySQL 引擎特性 InnoDB 事务系统#02 MySQL 引擎特性 Innodb 锁子系统浅析#03 MySQL 特性分析 LOGICAL_CLOCK 并行复制原理及实现分析#04 PgSQL 源码分析 AutoVacuum机制之autovacuum launcher#05 MSSQL 最佳实践 SQL Server备份策略#06 MySQL 最佳实践 一个“异…

【青少年编程(第32周)】李老师太给力了!

2021年10月03日(周日)晚20:00我们在青少年编程竞赛交流群开展了第三十二期直播活动。我们直播活动的主要内容如下: 首先,我们奖励了上周测试超过40分的小朋友。 其次,我们讲解了上次测试中小朋友们做错的题目Scratch青…

mysql5.6 thread pool_mysql5.6 thread pool

从percona 的压测来看,确实很牛笔啊。提升很大。http://www.mysqlperformanceblog.com/2014/01/29/percona-server-thread-pool-improvements/当然,他指出目前mysql5.6 有2套thread pool ,一套是mysql企业版里面的,另外一套是mari…

选项选择Windows XP系统安装MySQL5.5.28图解

本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~ Windows XP系统安装MySQL5.5.28图解 MySQL数据库的安装一共分为两个部分:数据库的安装和数据库的配置。 一、MySQL数据库的安装 1、双击下载的MySQL安装文件&#xf…

荣耀:想成功要敢于推翻重来

1月底,荣耀总裁赵明接受了吴晓波的采访。在采访中,赵明在谈到手机行业的未来,以及手机企业该如何应对时,说“做企业一定要有消灭自己的勇气,才能够在一波一波的浪潮当中活下来”。事实上,正是因为有着这种敢…

【组队学习】十月组队学习内容详情!(第30期)

第30期 Datawhale 组队学习活动马上就要开始啦! 本次组队学习的内容为: 吃瓜教程——西瓜书南瓜书李宏毅机器学习(含深度学习)深入浅出Pytorch时间序列分析机器学习数学基础树模型与集成学习CV中的Transformer青少年编程&#xf…

php mysql ajax日历记事本_php+mysql+jquery日历签到

在网站开发过程中我们会经常用到签到功能来奖励用户积分,或者做一些其他活动。这次项目开发过程中做了日历签到,因为没有经验所有走了很多弯路,再次记录过程和步骤。1.日历签到样式:2.本次签到只记录本月签到数,想要查…

转【红帽GFS集群文件系统配置指南】

本节中将简单的介绍下RedHat的集群文件系统GFS的配置,集群文件系统同普通的文件系统,例如:ext3,ufs,ntfs不一样,集群文件系统采用分布式锁管理,可以实现多个节点同时读写文件。主流的集群文件主要有IBM的GP…

[nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI

前一篇分析了前十个基础实验的代码,从这里开始分析后十个~ 一、PPI原理: PPI(Programmable Peripheral Interconnect),中文翻译为可编程外设互连。 在nRF51822 内部设置了PPI 方式,可以通过任务和事件让不同外设之间进行互连&…