SVN基于MYSQL认证

SVN的简介和工作原理

Subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linux和windows,但是普通应用在Linux上。

SVN主要是通过两种方式来工作:即是通过独立服务器和依赖Apache方式来工作。

SVN的作用体现如下方面

1、解决代码管理紊乱的问题。

2、解决代码冲突的问题。

3、解决代码拥有者对代码权限的控制。

系统环境:CentOS release 6.5 (Final)

服务器IP:192.168.159.130

vi /etc/sysconfig/network

一、安装相关软件包

[[email protected] ~]# yum -y install mysql mysql-devel mysql-server httpd mod_auth_mysql subversion mod_dav_svn

#mod_auth_mysql  #实现Apache的MySQL认证

#subversion      #SVN软件包

#mod_dav_svn     #Subversion与Apache之间的接口,通过它,Apache就可以访问版本库,并且可以让客户端也使用HTTP的扩展协议WebDAV/DeltaV进行访问。

二、关闭和启动相关服务

#关闭防火墙和selinux,免得给实验造成不必要的错误

[[email protected] ~]# service iptables stop

iptables: Setting chains to policy ACCEPT: filter          [  OK  ]

iptables: Flushing firewall rules:                         [  OK  ]

iptables: Unloading modules:                               [  OK  ]

[[email protected] ~]# setenforce 0

[[email protected] ~]# service mysqld start

#SVN是随着httpd服务启动而启动

[[email protected] ~]# service httpd start

Starting httpd: httpd: apr_sockaddr_info_get() failed for gupt-11

httpd: Could not reliably determine the server‘s fully qualified domain name, using 127.0.0.1 for ServerName

[  OK  ]

三、创建版本库和相关授权

#创建测试目录。

[[email protected] ~]# mkdir -p /data/svn

#在提供的路径上创建一个新的空的版本库,如果提供的目录不存在,它会为你创建。

[[email protected] ~]# svnadmin create /data/svn/test

#SVN访问认证文件,这里添加一个组,这个组的成员对test项目有读写的权限。这里可以根据开发人员的需求授予项目相关的权限。

[[email protected] ~]# cat /data/svn/authz

[groups]

admin = dailele1,dailele2,php100

[test:/]

@admin = rw

四、授予项目Apache的权限

[[email protected] ~]# chown apache.apache /data/svn/ -R

[[email protected] ~]# chmod 755 /data/svn/ -R

五、配置认证数据库

[[email protected] ~]# mysql -uroot -p

mysql> create database svn_auth;

Query OK, 1 row affected (0.00 sec)

mysql> use svn_auth;

Database changed

mysql> grant all privileges on *.* to [email protected]‘%‘ identified by ‘123456‘ with grant option;

Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE users

-> (

->   user_name CHAR(30) NOT NULL,

->   user_passwd CHAR(20) NOT NULL,

->   PRIMARY KEY (user_name)

-> );

Query OK, 0 rows affected (0.01 sec)

mysql> insert into svn_auth.users values(‘dailele1‘,encrypt(‘123456‘));

Query OK, 1 row affected (0.00 sec)

mysql> insert into svn_auth.users values(‘dailele2‘,encrypt(‘123456‘));

Query OK, 1 row affected (0.01 sec)

mysql> insert into svn_auth.users values(‘php100‘,encrypt(‘123456‘));

Query OK, 1 row affected (0.00 sec)

六、Apache和SVN集成

[[email protected] ~]# vi /etc/httpd/conf/httpd.conf

<Location /svn>

DAV svn                              #开启DAV模块支持!

SVNParentPath /data/svn/             #项目的父目录

AuthzSVNAccessFile /data/svn/authz   #SVN访问认证文件

AuthName "EELLY SUBVERSION"          #认证名称

AuthType Basic                       #基本认证

AuthMYSQLEnable on                   #开启Mysql认证

  AuthMYSQLUser svn                    #数据库访问用户名

  AuthMySQLPassword 123456             #数据库访问的密码

  AuthMYSQLDB svn_auth                 #存放认证信息的数据库名称

  AuthMYSQLUserTable users             #存放认证信息的表名称

AuthMYSQLNameField user_name         #存放认证用户名的字段名称

AuthMYSQLPasswordField user_passwd   #存放认证密码的字段名称

Require valid-user                   #表示只有认证的用户才能登陆

</Location>

七、重启服务

[[email protected] ~]# service httpd restart

八、修改my.cnf

[[email protected] ~]# vi /etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

skip_grant_tables

#启动mysql时不启动grant-tables授权表,不然会报错导致账号无法通过验证。

[error] [client 172.18.107.176] MySQL ERROR: Access denied for user ‘svn‘@‘localhost‘ (using password: YES)

[[email protected] ~]# service mysqld restart

Stopping mysqld:                                           [  OK  ]

Starting mysqld:                                           [  OK  ]

九、测试

9.1、在客户端先在火狐浏览器上用dailele1这个用户登录test版本库。

dailele用户是可以通过认证的,由于这个是新建的版本库,里面当然是空的了。

简单的SVN基于MySQL认证就这样搭建完成了,只需要在MySQL数据库里面创建一个用户,然后在authz文件里面授予用户相应的权限即可访问相应的版本库了。

时间: 2024-10-11 20:06:28

SVN基于MYSQL认证的相关文章

基于MySQL认证的邮件系统

经过几天的学习和研究,终于完成了基于MySQL的虚拟账号认证的邮件系统的搭建.发现搭建邮件系统及庞大而又复杂,涉及到多方面的知识:DNS的搭建,服务脚本的编写,证书加密原理,数据库的搭建,垃圾邮件的过滤等等.关于其中涉及到的相关独立知识点,之后会单独写日志.另外,需要说明的是本技术文档,基本上全部是使用的最新版本,核心软件全部使用源码包编译安装.其中,也包括搭建过程中遇到的各种问题的解决方法. 所需源码软件:    postfix-2.10.0.tar.gz    cyrus-sasl-2.1.

Centos6下vsftpd基于mysql认证创建虚拟用户

一,安装环境以及安装的软件: 1,CentOS release 6.4 (Final) [IP:192.168.1.110] 2,vsftpd-2.2.2-13.el6_6.1.x86_64 3,pam_mysql-0.7-0.12.rc1.el6.x86_64 4,mysql-5.6.16(编译安装) 二,在数据库上创建登录ftp的账号和密码 1,创建对应的database,远程授权登录账号并创建表用来存储登录ftp账号密码. mysql> create database vsftpd; my

vsftpd基于本地用户和mysql认证配置

虚拟用户认证 vsftp vsftpd软件包仅140KB 官方站点:http://vsftpd.beasts.org/ 主程序:/usr/sbin/vsftpd 服务名:vsftpd 用户控制列表文件 /etc/vsftpd/ftpusers /etc/vsftpd/user_list                    //禁止登录的FTP用户列表, 仅提供一份FTP用户列表,是否禁止登录取决于主配置文件中的设置 主配置文件 /etc/vsftpd/vsftpd.conf ftp的典型消息

基于apache整合svn服务器,基于mysql对用户认证

运行环境: 系统环境# uname -srLinux 2.6.32-504.16.2.el6.centos.plus.x86_64# cat /etc/issueCentOS release 6.6 (Final) Apache: httpd-2.4.12 svn: subversion-1.8.13 MySQL相关:  mariadb-10.0.17-linux-x86_64 mod_auth_mysql-3.0.0 其他依赖环境 pcre-8.37 serf-1.3.8 scons-2.3.

创建vsftpd服务器基于mysql的虚拟用户认证

简单罗列基础命令,只分享我的想法! 一.目的 要求:配置允许虚拟用户访问的vsftpd服务器,虚拟用户存储在另一台MySQL的服务器上面,虚拟用户账号有两个分别是tom和jerry,密码是tom和jerry,要求对这两个账户的权限做一下限制(根据实际的要求,自己调节). 环境:MySQL服务器(172.16.49.1),CentOS 6.6和MariaDB-5.5.43.另一台是通过yum安装vsftpd(192.168.0.22),OS是CentOS 6.6. MySQL是通用二进制格式安装,

linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

1.FTP协议:有命令和数据连接两种 命令连接,控制连接:21/tcp 数据连接: 主动模式,运行在20/tcp端口 和 被动模式,运行在随机端口 数据传输模式(自动模式):有二进制(mp3,jpg等)和文本(html)两种传输模式 ftp服务器端程序:wu-ftpd:vsftpd pureftpd Filezilla Serv-U ftp客户端程序:CLI文本模式命令:ftp lftp GUI图形界面软件:gftpd FlashFXP Cuteftp Filezilla vsftpd:命名为V

Vsftpd基于MySQL实现用户认证

ftp简介: ftp:File Transfer Protocol,文件传输协议:FTP是应用层协议,使用C/S架构,工作于20/tcp,21/tcp. FTP使用交互式访问模式,两个并行TCP连接,一个控制连接,一个数据连接,控制连接用于在客户机和服务器之间发送控制信息,比如用户和密码,改变远程目录和命令,上传下载文件等,数据连接用于真正发送数据.ftp有两种工作模式,主动模式(Active),被动模式(Passive). 数据: 命令连接:文件管理类命令,始终在线的连接 数据连接:数据传输,

FTP服务(4)基于MySQL数据库认证

基于MySQL数据库认证 说明:本实验在两台CentOS主机上实现,一台做为FTP服务器,一台做数据库服务器 数据库服务器和FTP服务器系统都是CentOS7 注意:如果是CentOS6系统请执行yum install vsftpd pam_mysql命令安装连接组件 MariaDB服务器: yum install mariadb-server -y systemctl start mariadb mysql MariaDB [(none)]> CREATE DATABASE vsftpddb;

实现FTP基于MYSQL虚拟用户认证

两台主机实现:一台作为ftp服务器,一台作为mysql服务器 host1 : 192.168.1.107 vsftpd pam_mysql.so host2 : 192.168.1.109 mariadb mariadb-server 一.准备数据库 1.安装数据库并启动mysql ~]# yum install mariadb mariadb-server -y ~]# systemctl start mariadb 2.创建vsftpd服务的虚拟数据库及用户列表 1)创建vsftp的数据库