【问题标题】:why I cannot cd into /var/lib/mysql为什么我不能 cd 进入 /var/lib/mysql
【发布时间】:2015-04-11 07:20:30
【问题描述】:

结构如下

ravas@ravas-desk-lmde /var/lib $ pwd
/var/lib
ravas@ravas-desk-lmde /var/lib $ ls -l | grep mysql
drwx------ 13 mysql   mysql   4096 Feb 10 22:32 mysql

当我尝试进入 /var/lib/mysql 时,我没有权限

ravas@ravas-desk-lmde /var/lib $ cd mysql/
bash: cd: mysql/: Permission denied

虽然我属于mysql组

ravas@ravas-desk-lmde /var/lib $ groups ravas 
ravas : ravas adm dialout cdrom floppy sudo audio dip video plugdev lpadmin sambashare mysql

这里有什么问题?

【问题讨论】:

    标签: linux file-permissions


    【解决方案1】:

    mysql 组没有目录权限,只有mysql 用户。

    【讨论】:

      【解决方案2】:

      mysql 组无权访问该目录。 mysql 用户的权限是rwx,但组和其他用户获得---,因此在mysql 组中并不能满足您的需求。

      【讨论】:

      • 我明白了,所以要 cd 进入它,我需要添加 mysql 组,或者 sudo -i 然后 cd mysql。您认为以前的安全解决方案是个坏主意吗?
      • 从打包的角度来看,这可能是个坏主意——当你升级 mysql 时,它可能会在 /var/lib/mysql 上重新安装旧权限。
      【解决方案3】:

      mysql 用户是唯一可以访问该目录的用户,可以使用root 访问并更改权限,也可以将目录权限更改为740

      chmod 740 /var/lib/mysql

      权限分为用户/组/其他三个部分。你有

      drwx------
      

      d= 目录

      r= 读取 = 4

      w=write = 2

      x=执行 = 1

      所以“所有者”在该目录中拥有 read(4) + write(2) + execute(1) = 7 权限

      其他人都没有

      【讨论】:

      • 如果您希望其他人访问该目录,您应该使用 750 或 755。 740 足以让正确组的成员阅读直接目录列表,仅此而已。执行位在这里更重要。
      【解决方案4】:


      根据给定的输入,很明显只有所有者mysql/var/lib/mysql 目录拥有read, write, execute 权限。

      当前登录用户 - ravas 是 mysql 组的一部分。因此ravas 用户可以cd/var/lib/mysql 目录如果组mysqlx (ie execute) 具有x (ie execute) 权限@ 。

      因此chmod g+rx /var/lib/mysqlchmod 750 /var/lib/mysql 将允许ravas 用户到cd/var/lib/mysql 并读取目录内容(即列表文件)

      • 注意: x/Execute 对目录的权限允许cd 进入目录

      【讨论】:

        【解决方案5】:
        sudo -i
        

        然后

        cd /var/lib/mysql/
        

        【讨论】:

        • sudo -i 为我解决了这个问题,在 ubuntu 上,我在 sudo chown -R mysql:mysql ... 上运行了以下目录
        • 这与权限有何关系?
        【解决方案6】:

        每个文件和目录都有三个基于用户的权限组:

        owner - Owner 权限仅适用于文件或目录的所有者,不会影响其他用户的操作。

        - 组权限仅适用于已分配给文件或目录的组,不会影响其他用户的操作。

        所有用户 - 所有用户权限适用于系统上的所有其他用户,这是您最想观看的权限组。

        drwx----- 13 mysql mysql 4096 Feb 10 22:32 mysql

        上面显示mysql文件夹的权限是700,所以mysql用户拥有所有的读、写和执行权限。 mysql 组没有权限。虽然,ravas 用户属于 mysql 组。没有权限。

        【讨论】:

        • 请编辑此答案以获得更好的清晰度。我目前无法关注它。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多