Прошлой ночью на своем сервере я сделал:
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
Кто-нибудь когда-либо видел такое поведение?
su
вызывает оболочку входа другого пользователя, как указано в /etc/passwd
. В вашем случае это /bin/false
, поэтому вы не получите никакой интерактивной оболочки.
Используйте
sudo -u test /bin/bash
или
sudo -u test /usr/bin/mysql
или что-то подобное вместо этого.