¿Qué es esta carpeta / run / user / 1000?

85

¿Qué es esta carpeta: /run/user/1000en mi sistema Fedora y qué hace?

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

EDITAR: 7 de junio de 2019.

Mis dos respuestas no están de acuerdo en qué directorio o dónde estaban los archivos almacenados en este lugar:

Patrick :

Antes de systemd, estas aplicaciones generalmente almacenaban sus archivos /tmp.

Y nuevamente aquí:

/tmpera la única ubicación especificada por FHSque es local y que todos los usuarios pueden escribir.

Braiam :

Los propósitos de este directorio alguna vez fueron atendidos por /var/run. En general, los programas pueden seguir utilizándose /var/runpara cumplir los requisitos establecidos a /runefectos de compatibilidad con versiones anteriores.

Y nuevamente aquí:

Los programas que han migrado para usar /rundeberían dejar de usarlos /var/run, excepto como se indica en la sección siguiente /var/run.

Entonces, de cuál es el padre /run/user/1000, ¿por qué no se menciona en ninguna de las respuestas lo que dice el otro sobre el directorio utilizado antes /run/user?

algo algo
fuente
En ninguna de las respuestas se menciona lo que dice el otro sobre el directorio utilizado antes / run / user porque solo uno realmente discute esto. La respuesta de Braiam analiza el directorio utilizado antes / run en lugar de / run / user.
David Yockey
1
Patrick presenta una respuesta a la pregunta "el padre de / run / user / 1000" como una declaración razonada pero sin fundamento. Braiam no aborda esta pregunta. Es probable que en el pasado se supusiera que la ubicación de almacenamiento de los archivos utilizados por los procesos en ejecución, es decir, los archivos temporales, era el directorio estándar / tmp. Si es así, sería difícil justificarlo porque pocas personas proporcionan un registro escrito de lo convencional o lo obvio. Para proporcionar una respuesta justificada, probablemente se requerirá una excavación concertada en el historial de la computadora.
David Yockey
Gracias por su aporte
algo

Respuestas:

94

/run/user/$uides creado pam_systemdy utilizado para almacenar archivos utilizados por procesos en ejecución para ese usuario. Estas podrían ser cosas como su demonio de llavero, pulseaudio, etc.

Antes de systemd , estas aplicaciones generalmente almacenaban sus archivos /tmp. No podían usar una ubicación /home/$userya que los directorios principales a menudo se montan sobre sistemas de archivos de red, y estos archivos no deberían compartirse entre los hosts. /tmpera la única ubicación especificada por el FHS que es local y que todos los usuarios pueden escribir.

Sin embargo, almacenar todos estos archivos /tmpes problemático /tmp, ya que todos pueden escribirlo, y aunque puede cambiar la propiedad y el modo de los archivos que se crean, es más difícil trabajar con ellos.

Entonces systemd apareció y creó /run/user/$uid. Este directorio es local para el sistema y solo es accesible para el usuario objetivo. Por lo tanto, las aplicaciones que buscan almacenar sus archivos localmente ya no tienen que preocuparse por el control de acceso.
También mantiene las cosas agradables y organizadas. Cuando un usuario cierra sesión y no quedan sesiones activas, pam_systemdborrará el /run/user/$uiddirectorio. Con varios archivos dispersos /tmp, no podría hacer esto.

Patricio
fuente
18
Debería mencionar que se llama $ XDG_RUNTIME_DIR, documentado en standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
o11c
¿Qué pasa si: he comenzado un proceso de cálculo "en segundo plano" nohupy guarda sus resultados / datos intermedios en un archivo temporal. ¿Puedo contar con que no se borre mientras se ejecuta el proceso, o se borrará y el proceso que se inicia nohupperderá sus datos?
imz - Ivan Zakharyaschev
Es poco probable que se borre, pero / run / user es un sistema de archivos tmpfs en fedora, por lo que estará limitado a la cantidad de espacio asignado. Vea la salida de df arriba.
jsbillings
¿Qué pasa si el pidfile es un servicio que se ejecuta bajo root? ¿Debería ser PID bajo / var / run o / var / run / user / 0? Si ya que no hay sesiones activas, ¿se eliminará?
TSG
11

De acuerdo con el último borrador de FHS (File Hierarchy Standard) , / run:

Este directorio contiene datos de información del sistema que describen el sistema desde que se inició. Los archivos de este directorio deben borrarse (eliminarse o truncarse según corresponda) al comienzo del proceso de arranque.

Los propósitos de este directorio fueron atendidos por / var / run. En general, los programas pueden seguir usando / var / run para cumplir los requisitos establecidos para / run con el fin de compatibilidad con versiones anteriores. Los programas que han migrado para usar / run deben dejar de usar / var / run, excepto como se indica en la sección sobre / var / run.

Los programas pueden tener un subdirectorio de / run; Esto se recomienda para los programas que utilizan más de un archivo de tiempo de ejecución. Los usuarios también pueden tener un subdirectorio de / ejecutar, aunque se debe tener cuidado de limitar adecuadamente los derechos de acceso para evitar el uso no autorizado de / ejecutar y otros subdirectorios.

En el caso del /run/userdirectorio, es utilizado por los diferentes servicios de usuario, como dconf, pulse, systemd, etc. que necesitan un lugar para sus archivos de bloqueo y enchufes. Hay tantos directorios como diferentes usuarios UID están registrados en el sistema.

Braiam
fuente