(この例では、コマンド:)など、/var/lib/pgsql/data/pg_hba.conf
他の場所にある物理ファイルを指すシンボリックリンク(Fedoraのデフォルトパス)を作成しようとしています。/var/lib/pgsql/data/pg_hba.conf -> /home/pg_hba.conf
sudo ln -sf /home/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf
元のファイルと同じように、/home/pg_hba.conf
権限(-rw-------
)、所有者(postgres
)、グループ()を設定して試してみました。ユーザーと私(現在はシンボリックリンク)に切り替えると、ファイルの内容が正常に印刷されます。postgres
/var/lib/pgsql/data/pg_hba.conf
chmod 777
postgres
cat /var/lib/pgsql/data/pg_hba.conf
/home/pg_hba.conf
ただし、変更を実行して適用しようとすると、sudo systemctl restart postgresql
次のエラーが発生します。
制御プロセスがエラーコードで終了したため、 postgresql.service 操作が失敗しました。
詳細については、「systemctl status postgresql.service」および「journalctl -xeu postgresql.service」を参照してください。
ログを確認しましたが、他に有用な情報はありません。
同じディレクトリ()内のファイルへのシンボリックリンクを指す場合にのみ機能します。/var/lib/pgsql/data/
これはまったく役に立ちません(例/var/lib/pgsql/data/pg_hba.conf -> /var/lib/pgsql/data/pg_hba.conf.bak
:)。
他の場所を指すと、それが/var/lib/pgsql
実際にユーザーのホームディレクトリであっても機能しませんpostgres
!
私はLinuxに初めてアクセスしたので、試してみるために私のファイルでシンボリックリンクを作成しようとしました~/.bashrc
(例~./bashrc -> /home/.bashrc
:)echo "TEST!"
このファイルにシンボリックリンクを作成し、新しい設定を適用しましたが、うまくいき、. ~/.bashrc
成功TEST!
が印刷されました。
それでは、PostgreSQLでは何が起こっているのでしょうか?このエラーを修正してpg_hba.conf
ファイルへのシンボリックリンクを維持するにはどうすればよいですか?
答えてくれてありがとう。
ベストアンサー1
まあ、この問題についてさらに研究を行った結果、根本的な原因は以下に由来することがわかりました。SELinux。
SELinuxを完全に無効にして動作させました(明らかに推奨されていません)。
/usr/bin/setenforce Permissive
chcon
私もsemanage
文書) しかし、何の成功も収められなかった。
chcon -R -t postgresql_db_t /home
semanage fcontext -a -t postgresql_db_t /home
SELinuxを完全に無効にせずにこれを行う方法を知っている人がいる場合は、ぜひ知りたいです。
明らかにSELinuxと戦うのは良い方法ではなかったので、達成したいことをあきらめましたが、学ぶことは非常に興味深かったです(SELinuxについて聞いたことがありませんでした)。私の答えが解決策を提示せず、根本的な原因だけを説明しても、「私を信じてお兄さん、こんなことはない」...