mysql identificado por unix_socket se comporta de maneira estranha sob o sudo

0

Eu configurei meu usuário do banco de dados em um servidor por CREATE USER myuser IDENTIFIED VIA unix_socket; e, é claro, FLUSH PRIVILEGES; . Funciona bem, eu posso conectar ao banco de dados usando o comando mysql .

Então eu usei o SSH no servidor como myuser , execute sudo su anotheruser (quem não tem sua conta mysql) e apenas para testar o think run mysql . Eu esperava que ele falhasse, mas ao invés disso eu peguei um shell mysql. Eu estava confuso, então corri SELECT USER(); e ele retornou myuser@localhost .

O que isso significa? Como o Linux anotheruser logou no mysql como myuser ? O unix_socket é uma maneira segura de autenticar o usuário?

Obrigado

    
por Vojtech Kane 01.01.2017 / 02:49

1 resposta

1

Ainda sabe qual usuário você é, originalmente, mesmo em sudo su:

[rubio@craptop ~]$ sudo su - root
[sudo] password for rubio:
[root@craptop ~]# whoami
root
[root@craptop ~]# who am i
rubio pts/1 2016-12-24 22:35 (:0)

Se o usuário de login "real" for anotheruser , ele será usado como usuário de autenticação do MySQL.

    
por 01.01.2017 / 03:30

Tags