sudo su não altera usuários para o mysql

12

Ontem à noite, no meu servidor, eu fiz:

sudo su - mysql 

para mudar para o usuário mysql para que eu possa rodar o cliente mysql, que é configurado para autenticar somente a partir da conta mysql. Eu corri com sucesso o cliente mysql e fiz a mudança para o 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 ser bem-sucedido, dada a mensagem sobre nenhum diretório inicial, mas whoami ainda relata meu id de usuário e tenta 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 o mysql:

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

Alguém já viu um comportamento como esse?

    
por wadesworld 12.02.2013 / 04:46

1 resposta

19

su chama o shell de login do outro usuário, conforme fornecido em /etc/passwd . No seu caso, é /bin/false , então você não recebe nenhum shell interativo.

Use

sudo -u test /bin/bash

ou

sudo -u test /usr/bin/mysql

ou algo assim em vez disso.

    
por Florian Diesch 12.02.2013 / 05:05

Tags