/run/user/$uid
wird von pam_systemd
erstellt und zum Speichern von Dateien verwendet, die von laufenden Prozessen für diesen Benutzer verwendet werden. Dies können Dinge wie Ihr Schlüsselring-Daemon, pulseaudio usw. sein.
Vor Systemd haben diese Anwendungen ihre Dateien normalerweise in /tmp
gespeichert . Sie konnten keinen Standort in /home/$user
verwenden da Home-Verzeichnisse oft über Netzwerk-Dateisysteme gemountet werden und diese Dateien nicht von Hosts gemeinsam genutzt werden sollten. /tmp
war der einzige vom FHS angegebene Ort, der lokal ist und von allen Benutzern beschreibbar ist.
Speichern Sie jedoch alle diese Dateien in /tmp
ist als /tmp
problematisch ist für alle schreibbar, und obwohl Sie den Eigentümer und den Modus der erstellten Dateien ändern können, ist es schwieriger, damit zu arbeiten.
Also kam systemd daher und erstellte /run/user/$uid
. Dieses Verzeichnis ist lokal im 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 Zugriffskontrolle kümmern.
Es hält auch die Dinge schön und organisiert. Wenn sich ein Benutzer abmeldet und keine aktiven Sitzungen verbleiben, pam_systemd
löscht die /run/user/$uid
Verzeichnis aus. Mit verschiedenen Dateien, die um /tmp
verstreut sind , du könntest das nicht.
Gemäß dem neuesten Entwurf von FHS (File Hierarchy Standard) /run:
Dieses Verzeichnis enthält Systeminformationsdaten, die das System seit dem Booten beschreiben. Dateien in diesem Verzeichnis müssen zu Beginn des Startvorgangs gelöscht (entfernt oder gegebenenfalls abgeschnitten) werden.
Die Zwecke dieses Verzeichnisses wurden früher von /var/run erfüllt. 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 sind, sollten ihre Verwendung von /var/run einstellen, außer wie 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 können auch ein Unterverzeichnis von /run haben, obwohl darauf geachtet werden muss, die Zugriffsrechte angemessen einzuschränken, um eine unbefugte Nutzung von /run selbst und anderen Unterverzeichnissen zu verhindern.
Im Fall von /run/user
Verzeichnis, wird 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 verschiedene Benutzer-UIDs im System angemeldet sind.