无法登录到unix mysql用户

时间:2016-03-16 21:45:02

标签: mysql bash login sudo

我正在尝试登录由bash shell中的MySQL安装创建的mysql用户。 所以我要做的命令是:

sudo -i -u mysql

但是,它确实没有(没有在控制台中打印出来,没有连接到任何用户,等等......)。 编辑:命令的返回值为1。

以下是mysql文件中的/etc/passwd用户行:

mysql:x:89:89::/var/lib/mysql:/bin/false

我在ArchLinux 64bit上运行,而我正在尝试连接的用户是本地的(没有连接到任何远程服务器)。

我试图理解为什么我可以使用任何其他用户(例如postgresroot,...)登录,但 mysql

希望你能帮忙!

1 个答案:

答案 0 :(得分:2)

这是预期的行为。当您将/etc/passwd行与其他行进行比较时,您会注意到用户mysql已将/bin/false设置为shell,而其他人通常为/bin/sh或某事。类似。

当你sudo到mysql时,你实际上获得了大约一毫秒左右的登录,然后他的“shell”被执行了。 /bin/false立即返回rc=1(这是false命令的唯一目的。)

这是阻止用户以用户mysql登录的某种“技巧”,尽管该帐户完全可以正常运行。

用户mysql甚至可能拥有有效密码并被启用,但由于他的奇怪的shell设置,您无法以他身份登录。有时,这些技术用户/usr/bin/passwd设置为其shell。然后,您只能sudo该用户并更改其密码,而不是其他任何内容。