Я установил пользователя БД на сервере с помощью CREATE USER myuser IDENTIFIED VIA unix_socket; и, конечно, FLUSH PRIVILEGES; , Он работает нормально, я могу подключиться к базе данных с помощью команды mysql .

Затем я SSHed на сервер как myuser , запускаю sudo su anotheruser (у которого нет его учетной записи mysql) и просто для проверки думаю , что запустить mysql . Я ожидал, что это потерпит неудачу, но вместо этого я получил оболочку mysql. Я был сбит с толку, поэтому побежал SELECT USER(); и он вернул myuser@localhost .

Что это значит? Как мог anotheruser Linux войти в MySQL как myuser? Является ли unix_socket безопасным способом аутентификации пользователя?

Спасибо

1 ответ1

1

Он до сих пор знает, каким пользователем вы являетесь, даже через 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)

Если "реальный" пользователь для входа в систему - anotheruser пользователь, он будет использовать его как пользователя MySQL для аутентификации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .