• redis的安装及acl小结



    1.Docker方式安装

    • docker search redis
    • docker pull 镜像名字 这种情况下速度比较慢
    • docker run -d -p 6379:6379 -v $PWD/conf/redis.conf:/usr/local/etc/redis/redis.conf -v $PWD/data:/data --name docker-redis - docker.io/redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
    • 特别慢,不建议使用

    2.编译安装

    • yum install -y gcc
      在这里插入图片描述
      在这里插入图片描述

    • wget http://download.redis.io/releases/redis-6.0.8.tar.gz
      在这里插入图片描述

    • tar xzf redis-6.0.8.tar.gz
      在这里插入图片描述

    • Make 会报错,需要升级gcc

    • yum -y install centos-release-scl
      在这里插入图片描述

    • yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
      在这里插入图片描述
      在这里插入图片描述

    • scl enable devtoolset-9 bash
      在这里插入图片描述

    • 需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。

    • 如果要长期使用gcc 9.3的话:

    • echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

    • 之后执行make test 也会报错,需要升级tcl

    • yum install -y tcl-devel
      在这里插入图片描述
      在这里插入图片描述

    • cd redis-6.0.8

    • make
      在这里插入图片描述
      在这里插入图片描述

    • 执行完 make 命令后,redis-6.0.8 的 src 目录下会出现编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli:启动 redis 服务:使用默认配置

    • cd src

    • ./redis-server
      在这里插入图片描述
      在这里插入图片描述


    3.Yum安装

    • yum install epel-release 如果找不到redis,先装这个
      在这里插入图片描述在这里插入图片描述

    • yum install redis 安装redis
      在这里插入图片描述
      在这里插入图片描述

    • find / -name "redis*" 查看redis都安装到了哪里

    • service redis start 打开redis服务
      在这里插入图片描述


    4.创建普通用户启动redis

    • cd redis-6.0.8/
      在这里插入图片描述
    • useradd -s /sbin/nologin -M redis创建redis用户
    • chmod -R 755 /root/redis/redis-6.0.8 给他设置读和执行的权限
    • chown redis.redis /root/redis/redis-6.0.8将redis加入root组中
      在这里插入图片描述
      在这里插入图片描述

    5.Redis之ACL

    在Redis6.0之前的版本中,登陆Redis Server只需要输入密码(前提配置了密码 requirepass)即可,不需要输入用户名,而且密码也是明文配置到配置文件中,安全性不高。并且应用连接也使用该密码,导致应用有所有权限处理数据,风险也极高。在Redis6.0有了ACL之后,终于解决了这些不安全的因素,可以按照不同的需求设置相关的用户和权限。

    在这里插入图片描述
    在这里插入图片描述

    • acl setuser y1新建用户不带密码
      在这里插入图片描述

    • acl setuser y1 on >777

    • auth y1 777带密码的并切换用户,acl whoami但是没有任何权限访问被拒绝在这里插入图片描述

    • acl list列出所有用户
      在这里插入图片描述在这里插入图片描述

    • user 代表是用户

    • default 代表默认用户(反之 为自己创建的用户)

    • on 代表激活(反之off,默认新增的为off)

    • nopass 代表不需要密码

    • ~* 代表可以访问的key

    • +@all 代表可以操作的command

    • Key的说明

    • acl getuser y1得到一个用户详细信息
      在这里插入图片描述

    • acl setuser y1 allkeys +@all给用户赋所有权限

    • ~*表示允许访问所有key,也可以用 allkeys来表示~*
      在这里插入图片描述

    • 权限相关:权限这块涉及到的比较多:权限的类别、类别里包含的命令,以及子权限。

    • 注意:-@all表示没有任何权限;+@all表示有所有权限;
      在这里插入图片描述

    • +:将命令添加到用户可以调用的命令列表中,如+@hash

    • -: 将命令从用户可以调用的命令列表中移除

    • +@: 添加一类命令,如:@admin, @set, @hash … 可以ACL CAT 查看具体的操作指令。特殊类别@all表示所有命令,包括当前在服务器中存在的命令,以及将来将通过模块加载的命令

    • -@: 类似+@,从客户端可以调用的命令列表中删除命令

    • +|subcommand: 允许否则禁用特定子命令。注意,这种形式不允许像-DEBUG | SEGFAULT那样,而只能以“ +”开头

    • allcommands+@all的别名,允许所有命令操作执行。注意,这意味着可以执行将来通过模块系统加载的所有命令。

    • nocommands-@all的别名,不允许所有命令操作执行。

    • 创建用户y7只给他赋予查看字符串的权限用户y8只有查看哈希值的权限

    • acl setuser y7 on >777

    • acl setuser y7 ~* +@string~表示通配符
      在这里插入图片描述
      在这里插入图片描述

    • acl setuser y8 on >777

    • acl setuser y8 ~* +@hash赋予他查看hash值的权限
      在这里插入图片描述

  • 相关阅读:
    【SSRF-01】服务器端请求伪造漏洞原理及利用实例
    Linux centos环境 安装谷歌浏览器
    富文本框编辑器 图片粘贴上传,实现图文粘贴,图片自动上传
    two ways to customize unordered_set
    算法基础课第二部分
    c语言编程函数名:b开头
    从新零售到社区团购,这中间发生了多少变化?
    VBA处理数据与Python Pandas处理数据案例比较分析
    【JGit】 AddCommand 新增的文件不能添加到暂存区
    腾讯基础面
  • 原文地址:https://blog.csdn.net/weixin_46065653/article/details/126637364