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

[经验分享] Centos实现svn本地认证apache认证

[复制链接]

尚未签到

发表于 2018-11-21 13:53:13 | 显示全部楼层 |阅读模式
  本文系统:Centos6.5_x64 本地lamp环境 ip:192.168.184.129

  一、搭建svn,实现svn方式访问、本地用户认证
  二、实现http方式访问、apache本地文件认证
  

  subversion目录说明:
*dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据
*db目录:就是所有版本控制的数据存放文件
*hooks目录:放置hook脚本文件的目录
*locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端
*format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
*conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)
  

  一、搭建svn服务;
  1、搭建svn服务;

[root@Aries ~]# yum install ntsysv vim-enhanced subversion  mod_perl  gcc-c++ make unzip -y
DSC0000.jpg

  2、新建一个目录用于存储SVN所有文件、创建版本仓库
[root@Aries ~]# mkdir /opt/svn
[root@Aries ~]# svnadmin create /opt/svn/svn  3、初始化版本仓库中的目录;
  仓库目录结构说明:
[root@Aries ~]# mkdir svn svn/dev svn/qa svn/ops svn/pub svn/ops/web svn/ops/wap
[root@Aries ~]# tree svn
svn
├── dev   #研发目录
├── ops   #运维目录
│   ├── wap  #工程目录
│   └── web
├── pub  #公共目录
└── qa   #测试目录
6 directories, 0 files  导入仓库:

[root@Aries ~]# svn import svn/ file:///opt/svn/svn/ -m "init svn repo"
增加           svn/ops
增加           svn/ops/wap
增加           svn/ops/web
增加           svn/qa
增加           svn/pub
增加           svn/dev
提交后的版本为 1。
[root@Aries ~]# rm -rf svn/  

  4、添加用户
  要添加SVN用户非常简单,只需在/opt/svn/svn/conf/passwd文件添加一个形如“username=password”的条目就可以了。
[root@Aries conf]# pwd
/opt/svn/svn/conf
[root@Aries conf]# cat passwd  |grep -v ^#
[users]
admin = admin     #管理员
dev = dev         #研发测试账号
qa = qa
ops = ops
zq = zq          #普通个人账号  5,修改用户访问策略
/opt/svn/opt/conf/authz记录用户的访问策略,
[root@Aries conf]# cat authz
[groups]
g_admin = admin
g_dev = dev
g_qa = qa
g_ops = ops,zq
[svn:/]
@g_admin = rw
* =
[svn:/dev]
@g_admin = rw
@g_dev = rw
@g_qa = r
* =
[svn:/qa]
@g_admin = rw
@g_qa = rw
@g_dev = r
@g_ops = r
* =
[svn:/ops]
@g_admin = rw
@g_ops = rw
@g_qa = r
* =
[svn:/pub]
@g_admin = rw
@g_ops = rw
@g_qa = rw
@g_dev = rw
* =  说明:以上信息表示,只有admin用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!
  6,修改svnserve.conf文件,让用户和策略配置生效。
[root@Aries conf]# cat svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /opt/svn/svn/conf/passwd
auth-db = /opt/svn/svn/conf/authz
[sasl]anon-access 控制非鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none" 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 缺省值:read
auth-access 控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 缺省值:write
password-db 指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf 目录的相对路径。缺省值:passwd
authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。除非指定绝对路径,否则文件位置为相对conf目录的相对路径。缺省值:authz


  7、启动svn服务
[root@Aries ~]# svnserve -d -r /opt/svn  8、测试服务
[root@Aries ~]#  svn co svn://192.168.184.129/svn --no-auth-cache --username username --password passwd
DSC0001.jpg

  
测试提交
DSC0002.jpg

  

  二、实现http方式访问、apache本地文件认证
  由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。
  1、安装apache svn 集成依赖包,会产生两个so文件,
LoadModule dav_svn_module  modules/mod_dav_svn.so   
LoadModule authz_svn_module modules/mod_authz_svn.so[root@Aries ~]# yum install mod_dav_svn -y  2、将svn的用户配置转换为http认证文件
  以下为一个小脚本;方便转换
[root@Aries conf]# pwd
/opt/svn/svn/conf
[root@Aries conf]# cat stoh.pl
use warnings;
use strict;
open (FILE, "passwd") or die ("Cannot open the passwd file!!!n");
open (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!n");
close (OUT_FILE);
foreach () {
if($_ =~ m/^[^#].*=/) {
$_ =~ s/=//;
`htpasswd -b webpasswd $_`;
}
}  进行转换;
[root@Aries conf]# perl stoh.pl
Adding password for user admin
Adding password for user dev
Adding password for user qa
Adding password for user ops
Adding password for user zq  3、修改httpd.conf,添加关于SVN服务器的内容
[root@Aries conf]# vim /etc/httpd/conf/httpd.conf
#add for svn

DAV svn
SVNPath /opt/svn/svn/
AuthType Basic
AuthName "Authentication for svn"
AuthUserFile /opt/svn/svn/conf/webpasswd
AuthzSVNAccessFile /opt/svn/svn/conf/authz
Satisfy all
Require valid-user
  重启服务

[root@Aries conf]# /etc/init.d/httpd restart  4、进行页面测试;
DSC0003.jpg

DSC0004.jpg

  切换账号测试
DSC0005.jpg

  

  





运维网声明 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-637862-1-1.html 上篇帖子: Apache2.2 服务无法启动等相关问题 解决方案汇总 下篇帖子: 检查到apache有错误发送邮件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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