Що це за папка / run / user / 1000?


84

Що це за папка: /run/user/1000у моїй системі Fedora і що вона робить?

~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           1.2G   20K  1.2G   1% /run/user/1000

EDIT: 7 червня 2019 року.

Мої дві відповіді не узгоджуються в тому, в якому каталозі або в яких файлах зберігаються тут

Патрік :

До цього systemdці програми зазвичай зберігали свої файли в /tmp.

І знову тут:

/tmpбуло єдиним місцеположенням, FHSяке вказано місцевим і всім користувачам.

Брайам :

Цілі цього довідника колись обслуговувались /var/run. Як правило, програми можуть продовжувати використовуватись /var/runдля виконання вимог, встановлених /runдля цілей зворотної сумісності.

І знову тут:

Програми, які перейшли на використання, /runповинні припинити їх використання /var/run, за винятком випадків, зазначених у розділі на /var/run.

Отже, хто з них є батьком /run/user/1000, чому ні в одній відповіді не сказано про те, що інший говорить про раніше використаний каталог /run/user.


В жодній відповіді немає жодної згадки про те, що говорить інший про каталог, який використовувався до / run / user, оскільки лише один насправді обговорює це. Відповідь Брайама обговорює каталог, який використовувався до / run, а не / run / user.
Девід Йокей

1
Відповідь на питання "батько / run / user / 1000" подається Патріком як аргументована, але необгрунтована заява. Брайам не займається цим питанням. Цілком імовірно, що місце зберігання файлів, використовуваних запущеними процесами, тобто тимчасовими файлами, раніше вважалося стандартною / tmp-каталогом. Якщо так, то було б важко обґрунтувати, оскільки мало хто надає письмові відомості про звичайне чи очевидне. Для надання обґрунтованої відповіді, ймовірно, знадобиться певне узгоджене копання в історії комп’ютера.
Девід Йокей

Спасибі за ваш внесок
somethingSomething

Відповіді:


94

/run/user/$uidстворюється pam_systemdі використовується для зберігання файлів, використовуваних запущеними процесами для цього користувача. Це можуть бути такі речі, як ваш демон-клавіш, pulseaudio тощо.

Перед системою ці програми зазвичай зберігали свої файли в /tmp. Вони не могли використовувати місцеположення, /home/$userоскільки домашні каталоги часто монтуються через мережеві файлові системи, і ці файли не повинні ділитися між хостами. /tmpбуло єдиним місцем, визначеним FHS, який є локальним та доступним для запису всіма користувачами.

Однак зберігання всіх цих файлів /tmpє проблематичним, оскільки /tmpце пишуть усі, і хоча ви можете змінити право власності та режим на створені файли, працювати з цим складніше.

Так з'явився і створив systemd /run/user/$uid. Цей каталог локальний для системи та доступний лише цільовому користувачеві. Таким чином, програмам, які хочуть зберігати свої файли локально, більше не потрібно турбуватися про контроль доступу.
Це також підтримує приємні та організовані речі. Коли користувач вийде з системи і не залишиться активних сеансів, pam_systemdбуде видалено /run/user/$uidкаталог. З різними файлами, розкиданими навколо /tmp, ви не могли цього зробити.


18
Слід зазначити, що він називається $ XDG_RUNTIME_DIR, задокументований на standard.freedesktop.org/basedir-spec/basedir-spec-latest.html
o11c

Що робити: я запустив "фоновий" процес обчислення nohup, і він зберігає проміжні результати / дані у тимчасовому файлі. Чи можу я розраховувати, що він не буде стертий під час запущеного процесу, або він буде стертий, і процес, розпочатий з nohup, втратить свої дані?
imz - Іван Захарящев

Це навряд чи буде стерто, але / run / user є файловою системою tmpfs у Fedora, тому вона буде обмежена простором, виділеним для неї. Дивіться вихід df вище.
jsbillings

Що робити, якщо pidfile - це служба, що працює під коренем. Чи повинен PID перейти під / var / run або / var / run / user / 0? Якщо оскільки немає активних сеансів, його буде видалено?
ТСГ

11

Відповідно до останнього проекту FHS (File Iierarchy Standard) , / run:

Цей каталог містить дані про системну інформацію, що описують систему з моменту її завантаження. Файли в цьому каталозі повинні бути очищені (видалені або усічені відповідно) на початку процесу завантаження.

Цілі цього каталогу колись обслуговували / var / run. Як правило, програми можуть продовжувати використовувати / var / run для виконання вимог, встановлених для / run для цілей зворотної сумісності. Програми, які перейшли на використання / run, повинні припинити використання / var / run, за винятком випадків, зазначених у розділі про / var / run.

Програми можуть мати підкаталог / run; це рекомендується для програм, які використовують більше одного файлу запуску. Користувачі можуть також мати підкаталог / run, хоча слід бути обережним, щоб належним чином обмежити права доступу, щоб запобігти несанкціонованому використанню / run і інших підкаталогів.

Що стосується /run/userкаталогу, використовується різними сервісами користувачів, такими як dconf, pulse, systemd тощо, яким потрібне місце для їх блокування файлів та сокетів. У системі існує стільки каталогів, скільки різних користувачів UID.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.