sudo su não altera os usuários do mysql

13

Ontem à noite, no meu servidor, eu fiz:

sudo su - mysql 

mudar para o usuário do mysql para que eu possa executar o cliente mysql, que está configurado para que ele seja autenticado apenas a partir da conta mysql. Executei com êxito o cliente mysql e fiz a alteração no banco de dados. Nada mudou no servidor durante a noite.

Hoje, nada que eu tente permitirá que eu mude para o usuário mysql. Parece ter êxito, dada a mensagem sobre nenhum diretório pessoal, mas whoamiainda relata meu ID de usuário e a tentativa de executar o mysql ainda falha.

wade@snoopy:~$ sudo su - mysql
[sudo] password for wade: 
No directory, logging in with HOME=/
wade@snoopy:~$ whoami
wade

wade@snoopy:~$ sudo su mysql
wade@snoopy:~$ whoami
wade

wwilliam@snoopy:~$ sudo -s
root@snoopy:/home/wade# 
root@snoopy:/home/wade# su mysql
root@snoopy:/home/wade# whoami
root

/ etc / passwd para mysql:

mysql:x:110:119:MySQL Server,,,:/nonexistent:/bin/false

Alguém já viu um comportamento como esse?

Wadesworld
fonte

Respostas:

19

suchama o shell de login do outro usuário, conforme indicado em /etc/passwd. No seu caso, é /bin/falsepara que você não obtenha nenhum shell interativo.

Usar

sudo -u test /bin/bash

ou

sudo -u test /usr/bin/mysql

ou algo assim em vez disso.

Florian Diesch
fonte