zoukankan      html  css  js  c++  java
  • 给数据库增加密码策略遇到的权限问题

            最近忙于审计,为了增加数据库的密码安全,想给数据库添加一个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,根本不需要考虑所在的目录权限。而实际情况是,首先需要有访问目录的权限,之后再考虑文件权限。这就好像一间房子是目录,里面有很多人是文件,即使房间里有你的人,你也需要先拿到房子的钥匙才能联系上你的人。

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

  • 相关阅读:
    atom无法安装插件的解决方法之一
    css3伪类温故知新
    flex 布局笔记
    NPM 无法下载任何包的原因,解决方法
    flex align-content中的描述的“多根轴线的对齐方式”中的“多根轴线”到底是什么
    nodejs express 静态文件的路径
    当函数传入参数是引用类型的几种情况和现象。
    关于NODE NPM 输入命令后没反应的问题
    no input file specified
    获取form提交的返回值
  • 原文地址:https://www.cnblogs.com/nandi001/p/12394425.html
Copyright © 2011-2022 走看看