/tmpと/runの違いは何ですか?

/tmpと/runの違いは何ですか?

~によるとFHS-3.0/tmp一時ファイル用、/runランタイム変数データ用。/runのデータは、次回の起動時に削除する必要があり、必要はありません/tmp。ただし、プログラムは、次回プログラムの開始時にデータを/tmp使用できるとは想定できません。これらすべてが私と非常に似ているようです。

それでは、2つの違いは何ですか?プログラムは、どの基準に従って一時データを入れるか取り出すかを決定する/tmp必要がありますか/run

FHSデータによると:

プログラムにはサブディレクトリがあります/run。これは、複数のランタイムファイルを使用するプログラムにお勧めします。

これは、「システムプログラム」と「一般プログラム」の区別が標準ではなく、プログラムのライフサイクル(例えば、長期実行プロセス対短期実行プロセス)でもないことを意味します。

FHSは以下のような根拠を示していませんが、遅すぎて設置してダーティトリックを早期に提供する必要がある問題を/run克服するために導入されました。しかし、今や導入され、FHSで説明されているので、両方を持つ明確な理由がないようです。/var/var/run/run/run/tmp

ベストアンサー1

カタログ/tmp/usr/tmp(以降/var/tmp)は、すべてとすべての人のためのゴミ箱でした。これらのディレクトリ内のファイルに対する唯一の保護メカニズムは、所有者がファイルを削除または名前変更することを制限する固定ビットです。 marcelmがコメントで指摘したように、原則として、誰かがサービスが使用する名前(たとえば、nginx.pidまたは)でファイルを生成するのを防ぐ方法はありませんsshd.pid。 (しかし、実際には、起動スクリプトが最初にこれらの偽のファイルを削除する可能性があります。)

/runロック、ソケット、PIDファイルなどの長寿命の非持続的なランタイムデータを提供するように構築されています。一般の人々が書くことができないため、サービスの実行時データを複雑でクリーンアップ/tmpする努力から保護します。事実:私が実行している2つのディストリビューション(悪意のあるものではありません)は755の権限を持ち/run/tmpその問題/var/tmpについては/dev/shm)1777の権限を持っています。

おすすめ記事