• 给数据库增加密码策略遇到的权限问题


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

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

  • 相关阅读:
    java基础问题1
    基本数据类型,string类型的瞎扯,final喜欢干的事儿。final string
    关于区块链不懂的东西
    需求更新表属性
    用户体验——响应时间
    后台运行任务nohup xxxxxx &
    jenkins打包maven工程发现有些包下载不下来
    jenkins复选框插件Extended Choice Parameter plugin
    jmeter上传文件tips
    airflow 简介
  • 原文地址:https://www.cnblogs.com/nandi001/p/12394425.html
Copyright © 2020-2023  润新知