sudo su ne change pas les utilisateurs de mysql

13

Hier soir, sur mon serveur, j'ai fait:

sudo su - mysql 

pour passer à l'utilisateur mysql afin que je puisse exécuter le client mysql, qui est configuré de sorte qu'il ne s'authentifiera qu'à partir du compte mysql. J'ai réussi à exécuter le client mysql et apporté la modification à la base de données. Rien n'a changé sur le serveur du jour au lendemain.

Aujourd'hui, rien de ce que j'essaie ne me permettra de passer à l'utilisateur mysql. Il semble réussir, étant donné le message sur aucun répertoire de base, mais whoamirapporte toujours mon ID utilisateur et essayer d'exécuter mysql échoue toujours.

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 pour mysql:

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

Quelqu'un a-t-il déjà vu un tel comportement?

wadesworld
la source

Réponses:

19

suinvoque le shell de connexion de l'autre utilisateur comme indiqué dans /etc/passwd. Dans votre cas, c'est pour /bin/falseque vous n'obteniez aucun shell interactif.

Utilisation

sudo -u test /bin/bash

ou

sudo -u test /usr/bin/mysql

ou quelque chose comme ça à la place.

Florian Diesch
la source