社内テスト用サーバー (Fedora 29) で Apache 上の PHP アプリのデバグをしていて気付いたのだが、アプリから /tmp に書き込んだはずのデバグログファイルがコンソール画面 (bash) から見られない。 誤って削除したのかと思ったが、アプリからは既存ファイルとして存在しており以前書き込んだ内容も正しく読み取れる。 で、色々調べてみたところ、systemd で管理されるサービスには「PrivateTemp」という機能が適用され、/tmp と /var/tmp およびそれらの配下を実際の /tmp や /var/tmp ではなくサービスごとに用意された別のディレクトリにマップすることが分かった。 例えば、httpd 配下のアプリの /tmp なら、実際には /tmp/systemd-private-{16進数の羅列}-httpd.service-{6文字のユニーク文字列}