Warum ist / tmp ein Symlink zu / private / tmp?

37

Warum gibt es /tmpeinen Symlink zu /private/tmpunter Mac OS X? Mit anderen Worten, warum ist es nicht /tmpnur ein reguläres Verzeichnis wie unter Linux oder BSD? Ich verstehe, wie es funktioniert und es macht mir nichts aus, ich interessiere mich nur für die (historische?) Argumentation dahinter.

otto.poellath
quelle

Antworten:

33

AIUI ist ein Holdover von NextStep (auf dem OS X basiert) und NextStep hat es getan, um NetBooting zu unterstützen. Die Idee war, dass Sie von einem im Netzwerk gehosteten Volume booten (wahrscheinlich schreibgeschützt und mit anderen Computern gemeinsam genutzt) und zu Beginn des Bootvorgangs ein lokales (beschreibbares) Volume auf / private mounten können. Wie bereits erwähnt, ermöglichte dies die Änderung von / var und / tmp zur Laufzeit sowie von Einstellungen pro Computer in / etc.

Dies ist nicht mehr erforderlich, da das aktuelle NetBoot-System von Apple ein Shadow-Disk-Image verwendet, um Änderungen auf dem Startvolume zu speichern. Aber einige Programme / docs / etc nehmen jetzt an, dass die Dateien unter / private gespeichert sind, so dass es zu schwierig wäre, sie zurückzuschalten ...

Gordon Davisson
quelle
"Aber einige Programme / docs / etc" lolpun (etc ist mit / private / etc verbunden)
Kevin Wheeler
5

Ich habe mich immer das Gleiche gefragt. Ich kann keine Dokumentation finden, die dies unterstützt. In der Regel wird dieses Muster jedoch verwendet, um das Speichern von Dateien auf einem anderen Volume (z. B. Festplatte) zu vereinfachen. Auf diese Weise kann das Laufwerk an einer Stelle in das Dateisystem eingebunden (z. B. angehängt) werden. Zum Beispiel , wenn der Antrieb montiert an /privateund dann die Ordner /etc, /tmpund /varwerden dann alle auf dem anderen Laufwerk befindet.

Was ich nicht sagen kann, ist, warum dies von Vorteil wäre. Es ist erwähnenswert, jedoch, dass diese drei Ordner „Daten“ Dateien wie Konfiguration, temporäre, log, vorübergehende und Datenbankdateien enthalten und nicht ausführbaren Code in das darin enthaltene /bin, /sbinund /usrOrdner.

g.
quelle
1

Ich bin mir nicht sicher über den historischen Grund, aber OS X "reorganisierte" immer die typische Unix-Struktur. /tmpist nicht das einzige was dazu gehört /private, es hat auch /etcund /var.

Vielleicht kann sich jemand mit mehr OS X-Hintergrund etwas Vernünftigeres einfallen lassen.

Martin Marconcini
quelle
-1

/tmpist ein symbolischer Lynk, /private/etcum 2 Dateisysteme klar voneinander zu trennen:

  • / die schreibgeschützt bereitgestellt werden kann, um sie vor versehentlichen oder ungewollten Änderungen zu schützen und um zu verhindern, dass sie mit ständig wachsenden Dateien (Protokollen und temporären Dateien) gefüllt wird,

  • /private die als Lese- / Schreibzugriff bereitgestellt werden kann und jedes Verzeichnis enthält, in dem sich veränderbare Dateien befinden.

Wenn Sie sich das ansehen, werden /Sie 3 Verzeichnisse bemerken, die aus demselben Grund ähnliche symbolische Links darstellen:

cd /
ls -al | grep '> private'

Diese Trennung des Zugriffs zwischen schreibgeschützten und schreibgeschützten Dateisystemen wird (unter MacOS X) nicht verwendet, es ist jedoch alles vorhanden, um diese Sicherheitstrennung zu erreichen.

Einige Administratoren erzwingen diese Sicherheitstrennung, indem sie ein bestimmtes /private Dateisystem mit der entsprechenden Größe und den entsprechenden Einhängeoptionen (insbesondere nosuid) definieren.

Dan
quelle