在这种情况下,管理员帐户可以在终端中运行 mysql 命令,而某些用户帐户则不能。
答案1
在 Linux 权限系统中,这是完全有可能的。查看mysql
可执行文件的当前权限:
~$ ls -l /usr/bin/mysql
-rwxr-xr-x 1 root root 4243880 jan 19 13:45 /usr/bin/mysql
有三组权限:
- rwx(所有者
root
可以读、写和执行该文件); - rx(组中的其他人
root
可以读取并执行该文件); - 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]
您需要注销并重新登录才能使最后的更改生效。