Com o sistema Linux de permissões, isso é muito bem possível. Veja as permissões atuais do executável mysql :
~$ ls -l /usr/bin/mysql
-rwxr-xr-x 1 root root 4243880 jan 19 13:45 /usr/bin/mysql
Existem três grupos de permissões:
- rwx (o dono
rootpode ler, gravar e executar o arquivo); - r-x (outros no grupo
rootpodem ler e executar o arquivo); - r-x (todos os outros também podem ler e executar o arquivo).
Tiraremos as últimas permissões e permitiremos que apenas um grupo de usuários execute o comando.
Primeiro, crie um novo grupo mysqlusers :
sudo groupadd mysqlusers
Em seguida, mova o executável mysql para esse grupo:
sudo chgrp mysqlusers /usr/bin/mysql
Verifique se funcionou:
~$ ls -l /usr/bin/mysql
-rwxr-xr-x 1 root mysqlusers 4243880 jan 19 13:45 /usr/bin/mysql
Agora retire as permissões de execução para todos os usuários "outros" (não-mysql):
sudo chmod o-x /usr/bin/mysql
Você pode emitir o comando ls -l mais uma vez para verificar se o% final x foi alterado para - .
Neste ponto, se você tentar entrar com o comando mysql, ele lhe dará: access denied. Isso porque você não é membro do grupo mysqlusers . Adicione você e outros usuários a esse grupo:
sudo groupadd -a -G mysqlusers [username]
Você precisará fazer logout e fazer o login para que esta última alteração funcione.