/run/user/$uid
pam_systemd
によって作成されました また、そのユーザーのプロセスを実行するために使用されるファイルを保存するために使用されます。これらは、キーリング デーモン、pulseaudio などである可能性があります。
systemd 以前は、これらのアプリケーションは通常、ファイルを /tmp
に保存していました。 . /home/$user
の場所を使用できませんでした ホームディレクトリはネットワークファイルシステム上にマウントされることが多く、これらのファイルはホスト間で共有されるべきではないためです。 /tmp
ローカルであり、すべてのユーザーが書き込み可能な FHS によって指定された唯一の場所でした。
ただし、これらすべてのファイルを /tmp
に保存します /tmp
として問題があります 誰でも書き込み可能で、作成中のファイルの所有権とモードを変更できますが、操作はより困難です。
systemd がやってきて /run/user/$uid
を作成しました .このディレクトリはシステムに対してローカルであり、ターゲット ユーザーのみがアクセスできます。そのため、ファイルをローカルに保存しようとしているアプリケーションは、アクセス制御について心配する必要がなくなります。
また、物事を美しく整理します。ユーザーがログアウトし、アクティブなセッションが残っていない場合、pam_systemd
/run/user/$uid
を消去します ディレクトリアウト。 /tmp
の周りに散らばるさまざまなファイル 、これはできませんでした。
FHS (File Hierarchy Standard) の最新ドラフトによると、/run:
<ブロック引用>このディレクトリには、起動以降のシステムを説明するシステム情報データが含まれています。このディレクトリの下のファイルは、起動プロセスの開始時にクリア (必要に応じて削除または切り捨て) する必要があります。
このディレクトリの目的は、かつて /var/run によって提供されていました。一般に、プログラムは引き続き /var/run を使用して、下位互換性のために /run に設定された要件を満たすことができます。 /run を使用するように移行したプログラムは、/var/run のセクションに記載されている場合を除き、/var/run の使用を中止する必要があります。
プログラムには /run のサブディレクトリがある場合があります。これは、複数のランタイム ファイルを使用するプログラムに推奨されます。ユーザーは /run のサブディレクトリを持つこともできますが、/run 自体や他のサブディレクトリの不正使用を防ぐために、アクセス権を適切に制限するように注意する必要があります。
/run/user
の場合 ディレクトリは、ロックファイルとソケットのための場所を必要とする dconf、pulse、systemd などのさまざまなユーザーサービスによって使用されます。システムに記録されているさまざまなユーザー UID と同じ数のディレクトリがあります。