DEVELOPERS BLOGデベロッパーズブログ

  1. HOME > 
  2. 加藤 正人のデベロッパーズブログ > 
  3. /tmp が見えない件

加藤 正人のデベロッパーズブログ

加藤 正人

氏名
加藤 正人
役職
多分SE
血液型
秘密
出没
美味しいもののあるところ
特色
タヒチ大好き。ちょいメタボ。

加藤 正人

2019/05/09

/tmp が見えない件

 

社内テスト用サーバー (Fedora 29) で Apache 上の PHP アプリのデバグをしていて気付いたのだが、アプリから /tmp に書き込んだはずのデバグログファイルがコンソール画面 (bash) から見られない。

誤って削除したのかと思ったが、アプリからは既存ファイルとして存在しており以前書き込んだ内容も正しく読み取れる。

で、色々調べてみたところ、systemd で管理されるサービスには「PrivateTemp」という機能が適用され、/tmp と /var/tmp およびそれらの配下を実際の /tmp や /var/tmp ではなくサービスごとに用意された別のディレクトリにマップすることが分かった。

例えば、httpd 配下のアプリの /tmp なら、実際には /tmp/systemd-private-{16進数の羅列}-httpd.service-{6文字のユニーク文字列}/tmp にアクセスする。

これは /tmp でのアプリ間のファイルの衝突を抑止するという意味では役に立つのだが、例えば Web サイト (PHP プログラム) と Cron アプリで作業用ファイルを共用したい場合に /tmp や /var/tmp を利用できないことになる。

これを回避するには、両者間で /tmp や /var/tmp 以外の特定のフォルダを共用することになり、システム全体で管理しなければならない項目が1つ増えてしまうのでちょっと困ることもある。

関連タグ: Fedora  Fedora29  Apache  httpd  systemd  PrivateTemp 

関連エントリー