unix_socket 标识的 mysql 在 sudo 下行为异常

unix_socket 标识的 mysql 在 sudo 下行为异常

CREATE USER myuser IDENTIFIED VIA unix_socket;我已经通过和 当然在服务器上设置了我的数据库用户FLUSH PRIVILEGES;。它运行正常,我可以使用命令连接到数据库mysql

然后我以 的身份通过 SSH 进入服务器myuser,运行sudo su anotheruser(他没有 mysql 帐户),只是为了测试运行mysql。我以为它会失败,但我得到了一个 mysql shell。我很困惑,所以运行了,SELECT USER();结果返回了myuser@localhost

这是什么意思?Linux 如何anotheruser以 身份登录 mysql myuser?这是unix_socket一种安全的用户身份验证方式吗?

谢谢

答案1

即使通过 sudo su,它仍然知道你最初是什么用户:

[rubio@craptop ~]$ sudo su - root
[sudo] password for rubio:
[root@craptop ~]# whoami
root
[root@craptop ~]# who am i
rubio pts/1 2016-12-24 22:35 (:0)

如果是“真实”登录用户,anotheruser它将使用它作为 MySQL 身份验证用户。

相关内容