当前位置: 首页 > news >正文

/usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题

最近忙于审计,为了增加数据库的密码安全,想给数据库添加一个validate_password密码校验插件,方法很简单,网上也多,但是遇到了一个权限问题,Linux的一个初级权限问题,我竟然不懂。太low了,,,写下来寒碜一下自己个。

先说一下添加插件的步骤:

1.要使服务器可用,插件库文件必须位于MySQL插件目录中(由plugin_dir系统变量命名的目录)。如果需要,通过在服务器启动时设置plugin_dir的值来配置插件目录位置。

mysql> show variables like 'plugin_dir';

+---------------+--------------------------+

| Variable_name | Value                    |

+---------------+--------------------------+

| plugin_dir    | /home/me/mysql/lib/plugin/ |

+---------------+--------------------------+

2.或者修改my.cnf之后,重启服务器以使新设置生效。或者,要在运行时注册插件,可以使用以下语句

mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';

3.报错及解决

但是我的报错如下:

[ERROR] Can't open shared library '/home/me/mysql/lib/plugin/validate_password.so' (errno: 25 /home/me/mysql/lib/plugin/validate_password.so: cannot open shared obje

ct file: Permission denied)

这明显是一个权限问题,查看validate_password.so文件:

-rwxr-xr-x 1 root root    44205 Sep 27 16:44 validate_password.so

其它用户有读的权限,这就没道理了,怎么报权限错误呢。

之后曲折的查找了一会,发现它前面有个目录/me 的权限是-rwx------ 1 root root ,也就是只有root账号权限的用户可以访问me目录下的文件。

好,问题找到了,修改权限为-rwxr-xr-x 1 root root 这样就可以了。

4.写在最后

最后说一下我的误解,之前一直认为,一个文件只要有被另一个用户访问的权限就行,大可以一个文件权限设成777,根本不需要考虑所在的目录权限。而实际情况是,首先需要有访问目录的权限,之后再考虑文件权限。这就好像一间房子是目录,里面有很多人是文件,即使房间里有你的人,你也需要先拿到房子的钥匙才能联系上你的人。

这次问题看来之前理解一直有误,只是之前一直侥幸逃脱,当自认为是正确的问题别一次次错误的验证为正确时,就会自认为是真理。多么痛的领悟!

相关文章:

  • datax把text转mysql_使用DataX实现mysql数据迁移
  • haccp体系的参照标准是_食品安全标准与ISO、GMP、HACCP等体系之间的相互关系
  • mac mysql 多实例_Mac上mysql多端口实例配置并设置开机自动启动
  • mysql 主要有哪些函数_mysql中有哪些函数
  • mysql索引失效解决6_简单介绍MySQL索引失效的几种情况
  • java 获取方法的参数_Java 8中如何获取参数名称的方法示例
  • java gui程序运行_13.JAVA之GUI编程将程序打包jar
  • java输入输出学生成绩_java从键盘输入学生成绩,找出最高分,并输出学生成绩等级。...
  • java $ 解析api_Java版抖音解析接口
  • java 10的 6次方_【Java】 剑指offer(15) 数值的整数次方
  • java 方法 返回值 int_关于java字节流类的read()方法返回值为int的思考
  • java 迭代器复制_java设计模式之迭代器模式
  • java取文件类型_java如何通过文件描述符获取文件类型
  • java pdb_当12C PDB遇上JDBC
  • java复选框添加选中事件_Java的JTable中添加JCheckBox,点击事件处理问题,求高手指点迷津...
  • 《深入 React 技术栈》
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • es6(二):字符串的扩展
  • Git学习与使用心得(1)—— 初始化
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Java知识点总结(JavaIO-打印流)
  • js作用域和this的理解
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • mongo索引构建
  • SpingCloudBus整合RabbitMQ
  • Webpack 4 学习01(基础配置)
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 机器学习 vs. 深度学习
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 与 ConTeXt MkIV 官方文档的接驳
  • 怎么将电脑中的声音录制成WAV格式
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (规划)24届春招和25届暑假实习路线准备规划
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (新)网络工程师考点串讲与真题详解
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .form文件_SSM框架文件上传篇
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .Net Core和.Net Standard直观理解
  • /proc/vmstat 详解
  • ??在JSP中,java和JavaScript如何交互?
  • @Resource和@Autowired的区别
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [1204 寻找子串位置] 解题报告
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [BJDCTF2020]The mystery of ip
  • [BZOJ 3680]吊打XXX(模拟退火)
  • [CodeForces-759D]Bacterial Melee