Что это за папка / 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.