linux下svn(subversion)服务端添加工程及配置权限
linux下svn(subversion)服务端添加工程及配置权限
转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/9010507.html
此篇我只是将所做过的事情记录下来,原想搜一篇文章保存呢,结果发现事实上并没有一篇合适的博文供参考,遂,自给自足,以丰衣足食嘛。
首先,你需要有这些:
一台已经安装好了的SVN服务器
一台客户的电脑
由于我是在现有的svn服务器上安装的,遂就略去了SVN安装的过程,现在我整理下大致的思路:
=>svnadmin创建工程
=>配置所创建工程下的authz passwd svnserve.conf
=>杀进程,重启SVN服务
=>测试新建立的工程(包括权限认证,文件提交和更新)
先,需要进入工程目录使用,svnadmin命令创建一个工程:
创建命令: svnadmin create 工程名
工程已经创建成功了,(在这里我插入一句:即使不熟悉请不要用复制的方式去创建svn工程,切记!) 现在进入文件夹,可以看到一些默认的文件和文件夹:
这里我大致解释下这几个文件夹的作用:
conf:放置当前工程的配置文件,权限访问控制等等
db:记录用户提价的版本、缓存、db配置等,本身也是个sqlLite数据库
format:一个文件,默认为空,用途暂不明
hooks:放置自动提交和更细脚本,及相关配置
locks:顾名思义就是锁,代码被锁住了,可以在这里进行解锁操作
README.txt:工程的介绍文档,建议新建工程后都更新下
?,因为我的目的是在拉取代码时就做一次权限认证,防止恶意用户窥测,遂,现在我们进入conf里面配置相关权限,conf目录目前有这些文件:
命令: vi passwd ,现在可以看到svn给了我们两个例子 harry和sally两个用户,现在我们需要添加我们的用户,大致格式是 :用户名 = 密码,#是注释,请不要以#开始命名用户
现在完成了一大半了,目前还需要配置两个,一个是文件读写权限和svn服务引用这两个,现在配置用户组及读写权限:
命令: vi authz
如图,用户组的配置需要在[group]标签下配置,你可以自定义一个用户组,比如这里的admin,用户组的用户均以逗号隔开,且用户必须在刚才的passwd文件中配置过的用户(不可使用中文作为用户名),用户组的命名方式为: 用户组名 = 用户1,用户2,用户3 ,用户组定义完成,现在需要对每一个用户组赋予不同的读写权限,大致格式是这样: @用户组名 = 读写权限 ,这个读写权限常用的有两个:rw->读写,r->只读。
用户组配置完成,现在需要配置svn服务引用,命令: vi svnserve.conf
额,主要操作就是把除了上面两个的其它配置参数全部用#注掉,对于保留的这两个参数,我解释下:
anon-access = none :将匿名用户的权限置为空
password-db = passwd :引用权限用户信息为passwd文件
好了,一切只缺重启了,现在需要找到重启的svn进程,请注意重启时需要在svn工程目录外侧执行命令
命令:
查找svn进程服务:ps -ef|grep svnserve
杀掉进程: kill -9 进程ID
启动svn: svnserve -d -r 目录名
可以看到,svn的启动命令已经在查找的进程中给出了,当然这里如果不是在svn工程列表目录外部操作,请一定注意启动命令后面的目录地址。
现在测试,由于家庭电脑没有装svn,公司电脑是测试成功的,这里我简要的给下一些基本命令供参考:
checkout工程(之后需要输入密码):
svn checkout svn://服务器IP或域名/工程目录(我这里是document) --username 用户名
添加文件:
svn add 文件名
提交文件(含备注):
svn commit -m "备注内容" 文件名
更新文件(需要制定版本):
svn update -r 修正版本 文件名
本节基本完成,我该发表了,等回公司了会把测试部分更新下,嘻嘻?
现在是:2018-05-13 13:15:01 ,我的中饭时间(●・̆⍛・̆●)
- 从原理到实践:Oracle 12.2 Sharding技术揭秘
- Xamarin-C#开发移动App-环境搭建
- Tensorflow快速入门
- .NET Core 实战笔记1-介绍和安装
- 全面直观认识深度神经网络
- dedecms清空所有文章怎么操作?sql语句如何写?
- .NET Core 实战笔记2-从命令开始
- 【译】使用Docker Compose一条指令配置Mesos
- 【译】Windows下的Docker Machine - 如何设置你的Docker主机
- 史上最透彻的KMP算法讲解
- 【译】助你成功搭建云应用的12条方法
- 你能用微信小程序打开小程序了【附开发方法】
- Logistic回归实战篇之预测病马死亡率(一)
- 腾讯游戏DBA利刃 - SQL审核工具介绍
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ELK 日志系统集成 Skywalking 调用链 ID
- ChartCenter ——为您的K8s之旅保驾护航v
- leetcode链表之删除链表的节点
- iOS打包的那一些事情
- 腾讯云服务器(CentOS 7、Tencent Linux)手动搭建LNMP环境(linux+Nginx+Mariadb+PHP)
- iOS技术面试题及答案
- 虽然现在有可以去码的软件了,可视频是如何自动跟踪打码的?
- 2020-09-12:手撕代码:最小公倍数,复杂度多少?
- Mac App推荐
- 美团面试问ThreadLocal,学妹一口气给他说了四种!
- BFE.dev前端刷题#108. 用队列(Queue)实现栈(Stack)
- Kafka消费过程关键源码解析
- leetcode链表之两个链表的第一个公共节点
- 测试开发基础 mvn test | 利用 Maven Surefire Plugin 做测试用例基础执行管理
- 腾讯云Elasticsearch集群规划及性能优化实践