昨晚,我在我的服务器上执行了以下操作:
sudo su - mysql
更改为 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
mysql 的 /etc/passwd:
mysql:x:110:119:MySQL Server,,,:/nonexistent:/bin/false
有人见过这样的行为吗?
答案1
su
调用 中给出的其他用户的登录 shell /etc/passwd
。 在你的情况下,/bin/false
你不会得到任何交互式 shell。
使用
sudo -u test /bin/bash
或者
sudo -u test /usr/bin/mysql
或者类似的东西。