sudo su не змінює користувачів для mysql


13

Минулої ночі на своєму сервері я зробив:

sudo su - mysql 

щоб перейти на користувача mysql, щоб я міг запустити клієнт mysql, який налаштований так, що він буде лише автентифікуватись з облікового запису mysql. Я успішно запустив клієнт mysql і вніс зміни в базу даних. Нічого не змінилося на сервері за ніч.

Сьогодні нічого, що я намагаюсь, не дозволить моїм користувачам змінитися на mysql користувача. Схоже, це успішно, враховуючи повідомлення про відсутність домашнього каталогу, але whoamiвсе-таки повідомляє про свій ідентифікатор користувача та намагання запустити mysql все ще не вдається.

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 для mysql:

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

Хто-небудь бачив подібну поведінку?

Відповіді:


19

suвикликає оболонку для входу іншого користувача, як зазначено в /etc/passwd. У вашому випадку це /bin/falseтак, що ви не отримаєте жодної інтерактивної оболонки.

Використовуйте

sudo -u test /bin/bash

або

sudo -u test /usr/bin/mysql

або щось подібне натомість.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.