mysql 用户应该有权访问 /var/lib/mysql 吗?

mysql 用户应该有权访问 /var/lib/mysql 吗?

首先,我要说的是,mysql在机器上似乎运行得很好。尽管如此,当我su mysql和时ls /var/lib/mysql,我的访问被拒绝。当我sudo ls /var/lib/mysql看到我的数据库表对应的数据文件时,所以这肯定是mysql的数据文件夹。

mysql 用户不应该有权访问自己的数据文件夹吗?机器是否配置错误?

更多细节:

$ sudo ls -la /var/lib/ | grep mysql
drwx------  5 mysql     mysql   4096 2011-06-25 08:05 mysql
$ sudo su mysql
$ ls /var/lib/mysql
ls: cannot open directory /var/lib/mysql: Permission denied
$ sudo ls -la /var | grep lib
drwxr-xr-x 42 root root  4096 2011-03-17 12:03 lib
$ sudo ls -la / | grep var
drwxr-xr-x 14 root root  4096 2010-12-02 19:14 var
$

答案1

你的测试有某种错误。守护进程正常工作这一事实证明,用户mysql能够读取该文件夹。如 的输出所示ls,它完全属于mysql。如果您确实是mysql用户,那么阅读它就不会有问题。

我认为你su失败了,可能是因为mysql用户没有 shell。您可以签入/etc/passwd,但它可能被设置为/bin/true或类似的东西,因此su成功但立即退出,然后当您运行它时,ls它只是以您的用户身份运行。尝试sudo -u mysql ls -al /var/lib/mysql一下。

下次通过跑步来检查你是否真的是你认为的那个人whoami。这也是当前用户名通常也是 PS1 提示的一部分的原因之一。如果您上面的复制/粘贴尚未经过编辑,则您的 shell 提示符不会显示您是谁。

相关内容