sudo su no cambia usuarios para mysql

13

Anoche, en mi servidor, hice:

sudo su - mysql 

cambiar al usuario mysql para poder ejecutar el cliente mysql, que está configurado para que solo se autentique desde la cuenta mysql. Ejecuté con éxito el cliente mysql e hice el cambio en la base de datos. Nada cambió en el servidor durante la noche.

Hoy, nada de lo que intento me permitirá cambiar al usuario de mysql. Parece tener éxito, dado el mensaje acerca de que no hay un directorio de inicio, pero whoamiaún informa mi identificación de usuario e intenta ejecutar mysql todavía falla.

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

¿Alguien ha visto un comportamiento como este?

Wadesworld
fuente

Respuestas:

19

suinvoca el shell de inicio de sesión del otro usuario como se indica en /etc/passwd. En tu caso eso es/bin/false para que no obtenga ningún shell interactivo.

Utilizar

sudo -u test /bin/bash

o

sudo -u test /usr/bin/mysql

o algo así en su lugar.

Florian Diesch
fuente