Что это за папка / run / user / 1000?


85

Что это за папка: /run/user/1000в моей системе Fedora и для чего она нужна?

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

РЕДАКТИРОВАТЬ: 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. Если это так, это было бы трудно обосновать, потому что мало кто предоставляет письменные записи об обычных или очевидных. Чтобы дать обоснованный ответ, вероятно, потребуется согласованное изучение истории компьютеров.
— Дэвид Йокей

Спасибо за ваш вклад
— что-то что-то

Ответы:


94

/run/user/$uidсоздается pam_systemdи используется для хранения файлов, используемых запущенными процессами для этого пользователя. Это могут быть такие вещи, как ваш брелок, pulseaudio и т. Д.

До появления systemd эти приложения обычно хранили свои файлы в /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 - это сервис, работающий под root. Должен ли его PID находиться в / var / run или / var / run / user / 0? Если активных сеансов нет, будет ли он удален?
— TSG

11

Согласно последнему проекту FHS (Стандарт иерархии файлов) , / запустите:

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

Цели этого каталога когда-то обслуживались / var / run. В общем, программы могут продолжать использовать / var / 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.