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
root
pode ler, gravar e executar o arquivo); - r-x (outros no grupo
root
podem 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.