有没有办法在 Ubuntu 16.04 的 MySQL 中限制某些用户?

有没有办法在 Ubuntu 16.04 的 MySQL 中限制某些用户?

在这种情况下,管理员帐户可以在终端中运行 mysql 命令,而某些用户帐户则不能。

答案1

在 Linux 权限系统中,这是完全有可能的。查看mysql可执行文件的当前权限:

~$ ls -l /usr/bin/mysql
-rwxr-xr-x 1 root root 4243880 jan 19 13:45 /usr/bin/mysql

有三组权限:

  1. rwx(所有者root可以读、写和执行该文件);
  2. rx(组中的其他人root可以读取并执行该文件);
  3. rx(所有其他人也可以读取和执行该文件)。

我们将取消最后的权限,并且只允许一组用户执行该命令。

首先,创建一个新组mysqlusers

sudo groupadd mysqlusers

然后,将mysql可执行文件移动到该组:

sudo chgrp mysqlusers /usr/bin/mysql

检查它是否起作用:

~$ ls -l /usr/bin/mysql -rwxr-xr-x 1 root mysqlusers 4243880 jan 19 13:45 /usr/bin/mysql

现在取消所有“其他”(非mysql)用户的执行权限:

sudo chmod o-x /usr/bin/mysql

您可以ls -l再次发出命令来检查最后一个是否x已更改为-

此时,如果您尝试输入 mysql 命令,它会给出:访问被拒绝。这是因为您不是组 的成员mysqlusers。将您自己和其他用户添加到该组:

sudo groupadd -a -G mysqlusers [username]

您需要注销并重新登录才能使最后的更改生效。

相关内容