/run/user/$uid
dibuat oleh pam_systemd
dan digunakan untuk menyimpan file yang digunakan dengan menjalankan proses untuk pengguna tersebut. Ini mungkin hal-hal seperti daemon keyring, pulseaudio, dll.
Sebelum ke systemd, aplikasi ini biasanya menyimpan file mereka di /tmp
. Mereka tidak dapat menggunakan lokasi di /home/$user
karena direktori home sering dipasang melalui sistem file jaringan, dan file ini tidak boleh dibagikan di antara host. /tmp
adalah satu-satunya lokasi yang ditentukan oleh FHS yang bersifat lokal, dan dapat ditulis oleh semua pengguna.
Namun menyimpan semua file ini di /tmp
bermasalah seperti /tmp
dapat ditulis oleh semua orang, dan meskipun Anda dapat mengubah kepemilikan &mode pada file yang sedang dibuat, akan lebih sulit untuk bekerja dengannya.
Jadi systemd datang dan membuat /run/user/$uid
. Direktori ini lokal untuk sistem dan hanya dapat diakses oleh pengguna target. Jadi aplikasi yang ingin menyimpan file mereka secara lokal tidak perlu lagi mengkhawatirkan kontrol akses.
Itu juga membuat semuanya tetap bagus dan teratur. Saat pengguna logout, dan tidak ada sesi aktif yang tersisa, pam_systemd
akan menghapus /run/user/$uid
direktori keluar. Dengan berbagai file yang tersebar di sekitar /tmp
, Anda tidak dapat melakukan ini.
Menurut draf terbaru FHS (File Hierarchy Standard), /run:
Direktori ini berisi data informasi sistem yang menggambarkan sistem sejak di-boot. File di bawah direktori ini harus dihapus (dihapus atau dipotong seperlunya) di awal proses booting.
Tujuan direktori ini pernah dilayani oleh /var/run. Secara umum, program dapat terus menggunakan /var/run untuk memenuhi persyaratan yang ditetapkan untuk /run untuk tujuan kompatibilitas mundur. Program yang telah bermigrasi untuk menggunakan /run harus menghentikan penggunaan /var/run, kecuali seperti yang disebutkan di bagian /var/run.
Program mungkin memiliki subdirektori dari /run; ini dianjurkan untuk program yang menggunakan lebih dari satu file run-time. Pengguna juga dapat memiliki subdirektori dari /run, meskipun harus berhati-hati untuk membatasi hak akses secara tepat untuk mencegah penggunaan tidak sah atas /run itu sendiri dan subdirektori lainnya.
Dalam kasus /run/user
direktori, digunakan oleh berbagai layanan pengguna, seperti dconf, pulse, systemd, dll. yang membutuhkan tempat untuk file dan soket kunci mereka. Ada banyak direktori karena UID pengguna yang berbeda dicatat dalam sistem.