MySQL /不存在的主目录与“没有目录,使用 HOME=/ 登录”

MySQL /不存在的主目录与“没有目录,使用 HOME=/ 登录”

preinst 脚本在 Debian/Ubuntu MySQL 软件包中将 MySQL 服务器的默认主目录设置为/nonexistent,大概是作为一种安全措施 - MySQL 服务器有自己的datadir路径,它用作主目录。

然而,这样做的副作用是,当 MySQL 启动时,它会生成以下消息:

No directory, logging in with HOME=/

我担心的是,从安全角度来看,这看起来不太好。这表明它会迫使 MySQL 尝试在 中创建文件/;显然,由于权限问题,它应该无法做到这一点,但最好不要尝试。我见过答案通过创建主目录来“解决”这个问题,但这似乎毫无意义,因为这样做的全部意义在于它没有,尽管它可能是“安全的”,因为 MySQL 也被设置为用作/bin/false它的 shell。

将其设置为确实存在并且 MySQL 拥有所有权的东西是否更安全,例如/var/lib/mysql

或者创建文件夹,但不允许 MySQL 写入它?

有没有更清洁的解决方案?

答案1

为了摆脱这个消息,你可以只为 mysql 用户分配一个主目录:

sudo systemctl stop mysql.service
sudo usermod -d /var/lib/mysql/ mysql
sudo systemctl start mysql.service

消息应该消失了。这对我来说是可行的,但我还没有检查这是否有任何其他影响,例如关于安全。

相关内容