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がそのフォルダに書き込むことを許可しませんか?
よりクリーンな解決策はありますか?
このメッセージを取り除くには、mysqlユーザーにホームディレクトリを割り当てるだけです。
Sudo systemctl stop mysql.service
Sudo usermod -d /var/lib/mysql/ mysql
Sudo systemctl start mysql.service
メッセージは消えるはずです。これは私にとってはうまくいきますが、これが他の影響を持っているかどうかは確認していません。セキュリティに関して。