Che cos'è questa cartella / run / user / 1000?


85

Cos'è questa cartella: /run/user/1000sul mio sistema Fedora e cosa fa?

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

EDIT: 7 giugno 2019.

Le mie due risposte non concordano su quale directory o dove erano i file memorizzati in questo posto:

Patrick :

Prima systemd, queste applicazioni in genere memorizzavano i loro file /tmp.

E ancora qui:

/tmpera l'unica posizione specificata da FHSche è locale e scrivibile da tutti gli utenti.

Braiam :

Gli scopi di questa directory erano serviti una volta /var/run. In generale, i programmi possono continuare a utilizzare /var/runper soddisfare i requisiti stabiliti /runai fini della compatibilità con le versioni precedenti.

E ancora qui:

I programmi che sono stati migrati per l'uso /rundovrebbero cessare il loro utilizzo /var/run, ad eccezione di quanto indicato nella sezione su /var/run.

Quindi quale è il padre /run/user/1000, perché non c'è alcuna menzione in nessuna delle risposte di ciò che l'altro dice sulla directory usata prima /run/user.


Non c'è alcuna menzione in entrambe le risposte a ciò che l'altro dice sulla directory usata prima / run / user perché solo uno ne discute. La risposta di Braiam discute la directory utilizzata prima di / run anziché / run / user.
David Yockey,

1
Una risposta alla domanda "il padre di / run / user / 1000" è presentata come una dichiarazione motivata ma priva di fondamento di Patrick. Braiam non affronta questa domanda. È probabile che in passato il percorso di archiviazione dei file utilizzati dai processi in esecuzione, ovvero i file temporanei, sia stato assunto come directory standard / tmp. Se è così, sarebbe difficile da dimostrare perché poche persone forniscono registrazioni scritte del convenzionale o dell'ovvio. Fornire una risposta motivata richiederebbe probabilmente un po 'di ricerca concertata nella cronologia dei computer.
David Yockey,

Grazie per il tuo contributo
qualcosa di simile

Risposte:


94

/run/user/$uidviene creato pam_systemde utilizzato per l'archiviazione dei file utilizzati dai processi in esecuzione per quell'utente. Questi potrebbero essere cose come il tuo demone portachiavi, pulseaudio, ecc.

Prima di systemd , queste applicazioni in genere memorizzavano i loro file /tmp. Non potevano usare una posizione in /home/$userquanto le directory home sono spesso montate su filesystem di rete e questi file non dovrebbero essere condivisi tra host. /tmpera l'unica posizione specificata dall'FHS che è locale e scrivibile da tutti gli utenti.

Tuttavia, archiviare tutti questi file /tmpè problematico in quanto /tmpè scrivibile da tutti e mentre è possibile modificare la proprietà e la modalità sui file creati, è più difficile lavorarci.

Quindi systemd è arrivato e creato /run/user/$uid. Questa directory è locale al sistema e accessibile solo dall'utente di destinazione. Pertanto, le applicazioni che desiderano archiviare i propri file localmente non devono più preoccuparsi del controllo degli accessi.
Mantiene anche le cose belle e organizzate. Quando un utente si disconnette e non rimangono sessioni attive, pam_systemdverrà cancellata la /run/user/$uiddirectory. Con vari file sparsi /tmp, non puoi farlo.


18
Dovrebbe menzionare che si chiama $ XDG_RUNTIME_DIR, documentato su standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
o11c

Che cosa succede se: ho avviato un processo di calcolo "in background" con nohup, e salva i suoi risultati / dati intermedi in un file temporaneo. Posso contare sul fatto che non viene cancellato mentre il processo è in esecuzione o verrà cancellato e il processo avviato con nohupperderà i suoi dati?
imz - Ivan Zakharyaschev,

È improbabile che venga cancellato, ma / run / user è un filesystem tmpfs in fedora, quindi sarà limitato alla quantità di spazio allocato ad esso. Vedi l'output df sopra.
jsbillings,

Cosa succede se il pidfile è un servizio in esecuzione in root. Il suo PID dovrebbe andare in / var / run o / var / run / user / 0? Se dal momento che non ci sono sessioni attive verrà rimosso?
TSG

11

Secondo l'ultima bozza di FHS (File Hierarchy Standard) , / esegui:

Questa directory contiene dati di informazioni di sistema che descrivono il sistema da quando è stato avviato. I file in questa directory devono essere cancellati (rimossi o troncati come appropriato) all'inizio del processo di avvio.

Gli scopi di questa directory una volta erano serviti da / var / run. In generale, i programmi possono continuare a utilizzare / var / run per soddisfare i requisiti stabiliti per / run ai fini della compatibilità con le versioni precedenti. I programmi che sono stati migrati per utilizzare / eseguire dovrebbero interrompere l'uso di / var / run, ad eccezione di quanto indicato nella sezione su / var / run.

I programmi possono avere una sottodirectory di / run; questo è consigliato per i programmi che usano più di un file di runtime. Gli utenti possono anche avere una sottodirectory / run, anche se è necessario prestare attenzione a limitare in modo appropriato i diritti di accesso per impedire l'uso non autorizzato di / run stesso e altre sottodirectory.

Nel caso della /run/userdirectory, viene utilizzato dai diversi servizi utente, come dconf, pulse, systemd, ecc. Che necessita di un posto per i loro file di blocco e socket. Esistono tante directory quanti utenti diversi UID sono registrati nel sistema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.