Was ist dieser Ordner / run / user / 1000?

84

Was ist dieser Ordner: /run/user/1000auf meinem Fedora-System und was macht er?

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

EDIT: 7. Juni 2019.

Meine zwei Antworten stimmen nicht überein, in welchem ​​Verzeichnis oder wo die Dateien an diesem Ort gespeichert waren:

Patrick :

Zuvor systemdhaben diese Anwendungen ihre Dateien in der Regel in gespeichert /tmp.

Und nochmal hier:

/tmpwar der einzige von der angegebene Ort, der FHSlokal und für alle Benutzer beschreibbar ist.

Braiam :

Die Zwecke dieses Verzeichnisses wurden einst von bedient /var/run. Im Allgemeinen können Programme weiterhin verwendet werden /var/run, um die Anforderungen zu erfüllen, die /runzum Zwecke der Abwärtskompatibilität festgelegt wurden.

Und nochmal hier:

Programme, die zur Verwendung migriert wurden, /runsollten nicht mehr verwendet werden /var/run, es sei denn, dies ist im Abschnitt über beschrieben /var/run.

Also, welcher ist der Vater von /run/user/1000, warum wird in keiner Antwort erwähnt, was der andere über das zuvor verwendete Verzeichnis sagt /run/user.

etwas etwas
quelle
In keiner der beiden Antworten wird erwähnt, was der andere über das Verzeichnis sagt, das vor / run / user verwendet wurde, da dies nur in einem der beiden Verzeichnisse diskutiert wird. In der Antwort von Braiam wird das Verzeichnis beschrieben, das vor / run anstelle von / run / user verwendet wurde.
David Yockey
1
Eine Antwort auf die Frage "Der Vater von / run / user / 1000" wird von Patrick als begründete, aber unbegründete Aussage präsentiert. Braiam spricht diese Frage nicht an. Es ist wahrscheinlich, dass der Speicherort von Dateien, die von laufenden Prozessen verwendet wurden, dh temporäre Dateien, in der Vergangenheit nur als das Standardverzeichnis / tmp angenommen wurde. In diesem Fall wäre es schwierig zu belegen, da nur wenige Personen schriftliche Aufzeichnungen über das Konventionelle oder Offensichtliche vorlegen. Eine fundierte Antwort zu geben, würde wahrscheinlich einige konzertierte Eingriffe in die Computergeschichte erfordern.
David Yockey
Vielen Dank für Ihre Eingabe
somethingSomething

Antworten:

94

/run/user/$uidwird von erstellt pam_systemdund zum Speichern von Dateien verwendet, die beim Ausführen von Prozessen für diesen Benutzer verwendet werden. Dies können Dinge wie Ihr Schlüsselbund-Daemon, pulseaudio usw. sein.

Vor systemd haben diese Anwendungen ihre Dateien normalerweise in gespeichert /tmp. Sie konnten keinen Speicherort in verwenden, /home/$userda Basisverzeichnisse häufig über Netzwerkdateisysteme bereitgestellt werden und diese Dateien nicht für Hosts freigegeben werden sollten. /tmpwar der einzige von der FHS festgelegte Ort, der lokal und für alle Benutzer beschreibbar ist.

Das Speichern all dieser Dateien /tmpist jedoch problematisch, da sie /tmpvon jedem beschrieben werden können. Sie können zwar den Eigentümer und den Modus der zu erstellenden Dateien ändern, es ist jedoch schwieriger, mit ihnen zu arbeiten.

Also kam systemd und kreierte /run/user/$uid. Dieses Verzeichnis ist lokal für das System und nur für den Zielbenutzer zugänglich. Anwendungen, die ihre Dateien lokal speichern möchten, müssen sich also nicht mehr um die Zugriffssteuerung kümmern.
Es hält auch die Dinge schön und organisiert. Wenn sich ein Benutzer abmeldet und keine aktiven Sitzungen verbleiben, pam_systemdwird das /run/user/$uidVerzeichnis gelöscht. Mit verschiedenen Dateien, die verstreut herumliegen /tmp, konnte man das nicht tun.

Patrick
quelle
18
Sollte erwähnen, dass es $ XDG_RUNTIME_DIR heißt, dokumentiert unter standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
o11c
Was ist, wenn: Ich habe einen "Hintergrund" -Rechnungsprozess mit gestartet nohupund die Zwischenergebnisse / -daten in einer temporären Datei gespeichert. Kann ich davon ausgehen, dass es nicht gelöscht wird, während der Prozess ausgeführt wird, oder wird es gelöscht, und der Prozess, mit dem er gestartet wurde nohup, verliert seine Daten?
imz - Ivan Zakharyaschev
Es ist unwahrscheinlich, dass es gelöscht wird, aber / run / user ist ein tmpfs-Dateisystem in fedora, sodass es auf den zugewiesenen Speicherplatz beschränkt ist. Siehe die df-Ausgabe oben.
Jsbillings
Was ist, wenn die PID-Datei ein Dienst ist, der unter root ausgeführt wird? Sollte die PID unter / var / run oder / var / run / user / 0 stehen? Wenn keine aktiven Sitzungen vorhanden sind, werden diese entfernt?
TSG
11

Nach dem neuesten Entwurf von FHS (File Hierarchy Standard) / run:

Dieses Verzeichnis enthält Systeminformationsdaten, die das System seit dem Start beschreiben. Dateien in diesem Verzeichnis müssen zu Beginn des Startvorgangs gelöscht (entfernt oder entsprechend gekürzt) werden.

Die Zwecke dieses Verzeichnisses wurden einmal von / var / run bedient. Im Allgemeinen können Programme weiterhin / var / run verwenden, um die Anforderungen zu erfüllen, die für / run aus Gründen der Abwärtskompatibilität festgelegt wurden. Programme, die zur Verwendung von / run migriert wurden, sollten die Verwendung von / var / run einstellen, es sei denn, dies ist im Abschnitt über / var / run angegeben.

Programme können ein Unterverzeichnis von / run haben; Dies wird für Programme empfohlen, die mehr als eine Laufzeitdatei verwenden. Benutzer haben möglicherweise auch ein Unterverzeichnis von / run, wobei jedoch darauf geachtet werden muss, die Zugriffsrechte angemessen einzuschränken, um die unbefugte Verwendung von / run selbst und anderen Unterverzeichnissen zu verhindern.

Im Fall des /run/userVerzeichnisses wird es von den verschiedenen Benutzerdiensten wie dconf, pulse, systemd usw. verwendet, die einen Platz für ihre Sperrdateien und Sockets benötigen. Es gibt so viele Verzeichnisse, wie unterschiedliche Benutzer-UIDs im System angemeldet sind.

Braiam
quelle