web-dev-qa-db-ja.com

MySQL / nonexistent home vs "ディレクトリなし、HOME = /でログイン"

preinstスクリプト MySQLのDebian/Ubuntuパッケージでは、おそらくセキュリティ対策として、MySQLサーバーのデフォルトのホームディレクトリが/nonexistentに設定されています-MySQLサーバーには独自のdatadirホームディレクトリのように使用するパス。

ただし、これの副作用として、MySQLの起動時に次のメッセージが生成されます。

No directory, logging in with HOME=/

ここで私が懸念しているのは、これはセキュリティの観点からは見栄えが悪いということです。これは、MySQLをプッシュして/にファイルを作成しようとすることを示唆しています。明らかにそれは許可のためにそれをするのに失敗するはずです、しかしそれが試みさえしないほうがよいでしょう。私は answers を見て、ホームディレクトリを作成することでこれを「解決」しますが、MySQLは「安全」である可能性がありますが、そうすることの全体的なポイントはそうではないので、それは無意味だと思われますまた、シェルとして/bin/falseを使用するように設定します。

/var/lib/mysqlなど、存在し、MySQLが所有権を持っているものに設定する方が安全でしょうか?

または、フォルダを作成しますが、MySQLがそのフォルダに書き込むことを許可しませんか?

よりクリーンな解決策はありますか?

4
Synchro

このメッセージを取り除くには、mysqlユーザーにホームディレクトリを割り当てるだけです。

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

メッセージは消えるはずです。これは私にとってはうまくいきますが、これが他の影響を持っているかどうかは確認していません。セキュリティに関して。

1
digijay