GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gibt es unter Linux ein Verzeichnisäquivalent zu /dev/null?

Lösung 1:

Der FHS stellt kein "standardmäßiges" leeres Verzeichnis zur Verfügung.

Für Linux-Systeme ist es üblich, ein Verzeichnis /var/empty bereitzustellen , aber dieses Verzeichnis ist in FHS nicht definiert und darf nicht wirklich leer sein. Stattdessen erstellen bestimmte Daemons hier ihre eigenen leeren Verzeichnisse. Zum Beispiel verwendet openssh das leere Verzeichnis /var/empty/sshd für Privilegientrennung.

Wenn Sie nur vorübergehend ein leeres Verzeichnis benötigen, können Sie selbst ein leeres Verzeichnis als Unterverzeichnis von /run erstellen oder /tmp . Wenn Sie dies außerhalb des Programms tun, können Sie mktemp -d verwenden dafür oder verwenden Sie den mkdtemp(3) C-Funktion in Ihrem Programm. Aber wenn Sie immer Wenn das leere Verzeichnis vorhanden sein muss, erwägen Sie, eines unter /var/empty zu erstellen wie es openssh tut.

Erstellen Sie für diesen Anwendungsfall ein Verzeichnis unter /tmp passt wahrscheinlich am besten, obwohl es in der Praxis nicht so wichtig ist, wo Sie es platzieren.

Lösung 2:

Sie können mktemp -d verwenden um ein neues leeres temporäres Verzeichnis mit sicheren Berechtigungen zu erstellen, standardmäßig in /tmp/ . Das Dienstprogramm gibt den Pfad des neuen Verzeichnisses auf STDOUT aus , daher ist es in der Shell nützlich.

Es ist ohnehin portabler als eine systemd-Unit-Datei.

Lösung 3:

Diese Unix-Frage enthält einige Vorschläge zum Erstellen eines "Blackhole"-Verzeichnisses, einschließlich eines nullfs FUSE-Dateisystems.

Lösung 4:

Für Dienste bietet systemd die Option PrivateTmp um private /tmp zu erstellen und /var/tmp Verzeichnisse, die nicht von Prozessen außerhalb des Namensraums für diesen Dienst gemeinsam genutzt werden und die (anfänglich) leer sein sollten.

[Service]
ExecStart=...
PrivateTmp=yes 

Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Simulieren Sie eine leere Standardeinstellung für einen getrennten Befehl?

  3. Linux – Wie erstellt man /dev/null?

  4. Wie Linux /dev/tty und /dev/tty0 verwendet

  5. Ist es falsch, /dev/random unter Linux mit /dev/urandom zu verknüpfen?

tty (/dev/tty ) vs. pts (/dev/pts) unter Linux

Was ist „/dev/null 2&1“ unter Linux

So leiten Sie die Ausgabe unter Linux nach /dev/null um

Was ist /dev/null unter Linux

/dev/null unter Linux

Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0