默认配置中,》简单的讲了一下SVN服务器的搭建

2019-10-06 01:54 来源:未知

前一篇文章《Spring+SpringMVC+MyBatis+easyUI整合进阶篇Linux下安装redis及redis的常用命令和操作》主要是一个简单的介绍,针对redis入门和安装及命令行简单的使用,虽然已经正常启动和使用,但是由于所有的设置都没有做任何改动,使用的是默认设置,默认端口、默认免密......其实目前状态下的redis相当于是一个裸奔的服务,多多少少是有一些安全性方面的缺陷,如果被一些别有用心的人扫描到或者攻击到还是比较麻烦的。

redis简介

www.129028.com 1

www.129028.com,redis

Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis与其他key-value缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

日常啰嗦

上一篇文章《Spring+SpringMVC+MyBatis+easyUI整合基础篇(十)SVN搭建》简单的讲了一下SVN服务器的搭建,并没有详细的介绍配置文件及一些复杂的功能,所以本文算是对上一篇文章的补充。

项目实际效果展示在这里,账密:admin 123456
下载地址,点这里
github地址,在这里

www.129028.com 2pass-set-cli

redis安装

源码安装比较麻烦,因此就用了一种简单的方式,centos下是直接使用了yum方式安装,执行命令如下:

yum install redis

成功后启动redis服务:

service redis start

查看redis版本:

redis-cli --version

关闭redis数据库命令:

service redis stop

卸载redis:

yum remove redis

Ubuntu下则是使用apt-get命令进行安装和卸载:

安装:apt-get install redis-server
卸载:apt-get remove redis-server

其他命令都是一样的。

配置文件详解

//首先通过```redis-cli```进入redis,如果没有启动redis的话则需要先启动redis服务:redis-cli //查看当前redis有没有设置密码:127.0.0.1:6379> config get requirepass1) "requirepass"2) ""//requirepass参数为空,即未设置密码,重新设置密码为123:127.0.0.1:6379> config set requirepass 123OK//设置之后再去操作会报错:无权限127.0.0.1:6379> get author NOAUTH Authentication required.127.0.0.1:6379> infoNOAUTH Authentication required.//auth + 密码用来验证,授权通过则可以进行正常操作:127.0.0.1:6379> auth 123OK127.0.0.1:6379> get author127.0.0.1:6379> info# Serverredis_version:4.0.2redis_git_sha1:00000000redis_git_dirty:0redis_build_id:5e81d0ebc9709a8a

redis常用操作

启动成功后,连接本地redis命令行进行操作:

redis-cli

www.129028.com 3

redis-cli

以上是执行了redis的增删查三个功能,使用了Redis的SET、GET和DEL命令,操作的数据类型是string:

  • 设置键为"name"的string对象的值为"perfect-ssm"
  • 获取键为"name"的string对象值
  • 设置键为"author"的string对象的值为"13"
  • 获取键为"author"的string对象值
  • 删除键为"author"的string对象

Redis支持五种数据类型:string字符串,hash哈希,list列表,set集合及zset(有序集合),想要详细了解的可以去查一下相关资料,关于redis的相关知识点不会写太多,毕竟不是redis的教程文章,而且在平时的项目开发中,初始阶段需要用到的也基本是string类型的多一些。

上述的三个命令中,GET是获取指定key的值,并不能满足搜索功能的要求,搜索通常是使用另一个关键字来实现,KEYS命令用于搜索具有匹配模式的键,命令语法为:

KEYS PATTERN

再创建几个键值对用于测试KEYS:

www.129028.com 4

set

KEYS *是获取Redis中所有可用键的列表,获取键中含有字母o的查询为keys *o*,简单示例如下:

www.129028.com 5

keys

svnserve.conf

svn服务配置文件,做权限配置及基本的关联设置

[general]

anon-access = none #非授权用户无法访问



auth-access = write #授权用户有读写权限(设置为read时为只读) 



password-db = passwd #密码数据文件(此时为当前conf目录下的passwd文件,也可以设置为绝对路径,如'/opt/svnconf/passwd')



authz-db = authz    #权限设置文件(此时为当前conf目录下的authz文件,也可以设置为绝对路径,如'/opt/svnconf/authz',如果未指定路径,则无访问控制)



# 这两个选项用来指定加密强度的(自行设置)

# min-encryption = 0

# max-encryption = 256

但是这种方式有个缺点,当前配置redis密码的方法是临时的不会永久有效,如果redis重启之后密码就会失效。

redis开启远程登录

redis默认只能localhost访问,所以需要开启远程登录,解决方法如下:

  • 首先,查看redis的配置文件地址:rpm -ql redis

www.129028.com 6

conf

配置文件为/etc/redis.conf,将此文件中的bind 127.0.0.1 改成bind 0.0.0.0即可,安全做法是只绑定特定的几台服务器ip即可。

  • 其次防火墙设置,redis默认端口是6379,因此需要设置服务器6379端口的权限。

在服务器完成以上操作后,即可进行验证,本地使用rdm客户端进行连接和操作:

www.129028.com 7

rdm

连接成功!

查看redis数据库中的key:

www.129028.com 8

rdm-key

passwd

用来设置用户名和密码的,格式为 用户名 = 密码

[users]

ssm1 = 123456(用户名ssm1密码为123456)

ssm2 = 567890

www.129028.com 9#requirepass

总结

关于redis的介绍到这里就告一段落了,希望能给看到这篇文章的你一些帮助,关于在项目中去整合redis会尽快整理出来。

首发于我的个人博客,新的项目演示地址:perfect-ssm,登录账号:admin,密码:123456

www.129028.com 10

image

如果有问题或者有一些好的创意,欢迎给我留言,也感谢向我指出项目中存在问题的朋友。

如果你想继续了解该项目可以查看整个系列文章Spring+SpringMVC+MyBatis+easyUI整合系列文章,也可以到我的GitHub仓库或者开源中国代码仓库中查看源码及项目文档。

authz

用户权限配置

[ssm-demo:/]    #表示ssm-demo仓库下的所有文件

ssm1 = rw       #ssm1用户具有读写权限

ssm2 = r        #ssm2用户具有读权限

[ssm-demo:/code/trunk/aaa]    #表示ssm-demo仓库下的/code/trunk/aaa目录

ssm1 = r        #ssm1用户具有读权限

ssm2 = r        #ssm2用户具有读权限

默认配置中,requirepass是被注释的。

权限设置

上面只是对authz文件做了简单的介绍及简单的用户权限配置,还有复杂的权限设置需要注意,比如有管理组admin及开发组A和开发组B,对应的开发项目为qq和weixin,这三组人员对应的项目权限肯定不一样,设置如下:
首先在passwd文件中设置全部人员

[users]

zhao = 123456(用户名ssm1密码为123456)

qian = 123456

sun = 567890

li = 123456

zhou = 123456

wu = 567890

zheng = 567890

然后在authz文件中设置权限

[group]             #设置分组(用户zheng未分组)

admin = zhao,qian   #管理员zhao和qian

group_a = sun,li    #A开发组sun和li

group_b = zhou,wu   #B开发组zhou和wu





[qq:/]              #表示qq项目仓库下的所有文件

@group_a = rw       #开发组A有读写权限

@admin=rw           #admin有读写权限 

* =                 #其他用户无权限(此时的其他用户就包括未分组的zheng及已经分组的group_b组中所有成员)



[weixin:/]          #表示weixin项目仓库下的所有文件

@group_b = rw       #开发组A有读写权限

@admin=rw           #admin有读写权限 

* =                 #其他用户无权限(此时的其他用户就包括未分组的zheng及已经分组的group_a组中所有成员)

补充

比如,qq项目下又有qq空间和qq邮箱,对这两个目录再进行权限分配

[group]                 #分组

admin = zhao,qian       #管理员zhao和qian

group_a = sun,li        #A开发组sun和li

group_b = zhou,wu       #B开发组zhou和wu

g_a_zone = ma           #新增qq空间组及成员ma

g_a_mail = zhang        #新增qq邮箱组及成员zhang





[qq:/zone]              #表示qq项目的qq空间目录

@g_a_zone = rw          #开发组g_a_zone有读写权限

@admin=rw               #admin有读写权限

@group_a = rw           #开发组A有读写权限 

* =                     #其他用户无权限



[qq:/mail]              #表示qq项目的mail空间目录

@g_a_mail = rw          #开发组g_a_mail有读写权限

@admin=rw               #admin有读写权限 

@group_b = rw           #开发组A有读写权限

* =                     #其他用户无权限

用户某个目录的权限是向子目录递归的。

修改redis.conf配置文件

多版本库

如果想两个项目分别进行开发,且拥有独立的开发人员,可以创建多个版本仓库,服务器中已经有ssm-demo仓库,我们再新建一个ssm-maven仓库。命令如下:

mkdir /opt/svn/ssm-maven

svnadmin create /opt/svn/ssm-maven

分别设置ssm-maven目录conf配置文件夹下的配置文件,重启svn服务即可,此时就有两个仓库了。

TAG标签:
版权声明:本文由www.129028.com-澳门金沙唯一官网www129028com发布于编程新闻,转载请注明出处:默认配置中,》简单的讲了一下SVN服务器的搭建