sudo su 不会更改 mysql 的用户

wad*_*rld 13 sudo su

昨晚,在我的服务器上,我做了:

sudo su - mysql 
Run Code Online (Sandbox Code Playgroud)

更改为 mysql 用户,以便我可以运行 mysql 客户端,该客户端已设置为仅从 mysql 帐户进行身份验证。我成功运行了 mysql 客户端并对数据库进行了更改。一夜之间服务器上没有任何变化。

今天,我尝试的任何方法都不允许我更改为 mysql 用户。鉴于没有主目录的消息,它似乎成功了,但whoami仍然报告我的用户 ID 并且尝试运行 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
Run Code Online (Sandbox Code Playgroud)

mysql 的 /etc/passwd:

mysql:x:110:119:MySQL Server,,,:/nonexistent:/bin/false
Run Code Online (Sandbox Code Playgroud)

有没有人见过这样的行为?

Flo*_*sch 19

su调用其他用户的登录 shell,如 /etc/passwd. 在你的情况下,/bin/false你不会得到任何交互式 shell。

sudo -u test /bin/bash
Run Code Online (Sandbox Code Playgroud)

或者

sudo -u test /usr/bin/mysql
Run Code Online (Sandbox Code Playgroud)

或者类似的东西。