本篇文章分为五个部分
1、sybolic_links 配置项具体解释,及和安全的相关性
2、创建2个用户自己名字1,名字2,可对demo数据库aaa(cmd text)表和bbb(cmd text)表有所有权限
3、muser1 用户 读取外部的 /etc/passwd 文件,读到aaa表 select user()
4、muser2用户读取外部的/etc/my.cnf 文件 ,读到bbb表中
5、总结今天内容和安全相关的配置。
第一部分
MySQL数据库及表(仅MyISAM)支持符号链接(symbolic link),即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录。
要支持符号链接,需要在配置中设置 symbolic-links=1(较新的版本为默认开启)
假设my.cnf有设置data目录:
datadir=/data1/mysql/data/
而在另一个分区目录下保存有数据数据库TestDB:
/data2/mysql/data/TestDB
那么可以这样使得同一个MySQL实例能同时管理TestDB:
ln -s /data2/mysql/data/TestDB /data1/mysql/data/
所有文件相关权限设置正确后,MySQL就可以管理TestDB了。
TestDB最好只能为一个MySQL服务来操作,否则会出现意想不到的问题
使用symbolic link的一个好处是当一个磁盘或分区空间不够时,可以将数据存储到其他的磁盘或分区。
第二部分
创建2个用户自己名字1,名字2,可对demo数据库aaa(cmd text)表和bbb(cmd text)表有所有权限
1.用命令: create user 名字@'%' identified by ‘密码’;创建两个用户:dzq、py
2.利用命令:select user,host from mysql.user; 查看是否添加成功
3. 利用命令: create database demo; 创建一个叫demo的库
4.来到demo库创建aaa、bbb两个表
5.show tables 查看表有没有创建成功
6.利用命令:grant all privileges on 库名字.* to 用户名字@'%' identified by '123';进行赋权
7.执行两次分别给用户:dzq、py完成赋权。完成第二部分
第三部分
题目:muser1 用户 读取外部的 /etc/passwd 文件,读到aaa表 select user()
Muser1=dzq
1.退出root选择dzq用户进入
2.use demo来到demo库
3.进行读取
4.查看是什么用户读取的
5.完成第三部分
第四部分
题目:muser2用户读取外部的/etc/my.cnf 文件 ,读到bbb表中
Muser=py
1.用py用户登录
2.进入到demo后利用命令 load data infile '要读取的路径' into table 表名;进行赋权
3.查看完bbb表内容完成第四题
第五部分
配置文件/etc/my.cnf是敏感文件,加权限,修改默认端口从3306改为12345
.3306端口不能对外开放,应该在配置文件中修改
禁止空用户登录
如果发现空用户要写到报告里面
修改配置后需要重启MySQL服务
secure_file_priv 文件三种值
- null 什么文件都读不了
- (2)默认/var/lib/mysql-files/ 有读取权限
- (3)为无 任意读取路径
查看单个用户所有情况(是否有root权限)
用户权限赋予情况,赋予所有数据库所有权限非常危险
查看主机域尽量不要有%
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。