准备操作系统并查看系统版本
# cat /etc/redhat-release
# uname -m
# uname -r
安装svn
检查程序是否安装:
# rpm -aq subversion
如果没有安装,则需要执行下面命令安装
# yum -y install subversion
补:yum安装rpm包安装后本机不清除的方法
# sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
# grep keepcache /etc/yum.conf
--keepcache=1 //rpm包下载后不清除
经验:一般功能性的东西,没有特殊需求,yum安装最快、最便捷,不要去编译安装
配置并启动svn
建立svn版本库数据库存储跟目录(svndata)及用户、密码权限目录(svnpasswd)
# mkdir -p /application/svndata
# mkdir -p /application/svnpasswd
启动svn服务指定服务的svn根目录
# svnserve --help
-d:守护进程模式
-r:指定svn根目录
--pid:存放进程号,管理时用
启动:
# svnserve -d -r /application/svndata/
查看进程是否启动:
# ps -ef|grep svn
查看端口:
#netstat -lntup|grep 3690
或#lsof -i :3690
提示:lsof有时面试会考
建立项目版本库
创建一个新的subversion项目sadoc,其实,类似sadoc这样的项目可以创建多个,每个项目对应不同的代码,这里只是以创建一个项目为例
创建版本库:
# svnadmin help // 查看帮助
# svnadmin help create //create用法
# svnadmin create /application/svndata/sadoc //创建版本库
# tree /application/svndata/ //查看文件树形结构
调整svn配置文件及权限文件
配置允许用户oldbod读写访问:
# cd /application/svndata/sadoc/conf //配置文件目录
svnserve.conf // 主配置文件
passwd //用户、密码配置文件
authz //权限配置文件
先备份:
# cp svnserve.conf svnserve.conf.ori
备份目的:
改错了恢复
对比改了什么东西
修改:
# vi svnserve.conf
anon-access=none //12行 匿名访问
auth-access=write //13行 访问权限
password-db = /application/svnpasswd/passwd //18行 用户、密码数据库 统一管理的作用
authz-db = /application/svnpasswd/authz //25行 权限数据库 统一管理的作用
提示:svnserve.conf中每个参数都要顶格写,开头不能有空格
对比:
# diff svnserve.conf.ori svnserve.conf
也可以用egrep检查
# egerp "\-access|\-db =" svnserve.conf
把密码认证文件模板考到相关目录
# cp authz passwd /application/svnpasswd/
# ls -l /application/svnpasswd/ //查看文件模块的读写权限
# chmod 700 /application/svnpasswd/ //非root用户不可见
提示:安全无小事,但是,重视的运维却少的可怜
添加用户:
# cd /application/svnpasswd/
# vi passwd
oldboy = oldboy123
xiaowang = xiaowang
提示:
1.等号前为svn账号,等号后为svn密码,密码是明文的,注意秘密权限
2.更改svnserve.conf时,需要重启svn,但是更改passwd、authz不需要重启
配置权限:
注意:
1.权限配置文件中出现的用户名必须已在用户配置文件中定义。
2.对权限配置文件的修改立即生效,不必重启svn
用户组格式:
[groups]
= ,
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多重写法
1.[/],表示跟目录及以下,根目录是svnserve启动时指定的,我们指定为/application/svndata,[/]表示对全部版本库设置权限。
2.[repos:/]表示对版本库repos设置权限
3.[repos:/sadoc]表示对版本库repos中的sadoc项目设置权限
4.[repos:/sadoc/oldboy]表示对版本库repos中的sadoc项目的oldboy目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
权限可以是w、r、wr和空,空表示没有任何权限
authz中每个参数都要顶格写,开头不能有空格
对于组,要以@开头,用户不需要@开头
# vi authz
sagroup = oldboy,gongli //定义一个用户组
[sadoc:/]
oldboy = rw //对用户进行权限控制
gongli = r
@sagroup = r //对组进行权限控制
svnserve重启:
# pkill svnserve
# svnserve -d -r /application/svndata
SVN客户端软件TortoiseSVN
安装....
客户端连接服务器的方式,账号及密码:
svn://10.0.0.17/sadoc
用户名:oldboy
密 码:oldboy123