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,根本不需要考虑所在的目录权限。而实际情况是,首先需要有访问目录的权限,之后再考虑文件权限。这就好像一间房子是目录,里面有很多人是文件,即使房间里有你的人,你也需要先拿到房子的钥匙才能联系上你的人。

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

  • 相关阅读:
    Java8简明教程(转载)
    Android开源代码分享
    Android关联源码support-v4的问题解决
    自定义控件的自定义的属性attrs.xml下的declare-styleable中format详解
    获得 LayoutInflater 实例的三种方式
    退出telnet
    Relay log read failure
    MySQL --log-slave-updates
    MySQL --slave-skip-errors
    MySQL 5.1.63 单机配置多实例(简单配置)
  • 原文地址:https://www.cnblogs.com/nandi001/p/12394425.html
Copyright © 2011-2022 走看看