Perché /tmp
un link simbolico /private/tmp
su Mac OS X? In altre parole, perché non è /tmp
solo una normale directory, come su Linux o BSD? Capisco come funziona e non mi dispiace, sono solo interessato al ragionamento (storico?) Alla base.
Perché /tmp
un link simbolico /private/tmp
su Mac OS X? In altre parole, perché non è /tmp
solo una normale directory, come su Linux o BSD? Capisco come funziona e non mi dispiace, sono solo interessato al ragionamento (storico?) Alla base.
Risposte:
AIUI è un holdover di NextStep (su cui si basa OS X) e NextStep lo ha fatto per supportare NetBooting. L'idea era che si potesse avviare da un volume ospitato in rete (probabilmente di sola lettura e certamente condiviso con altri computer), e all'inizio del processo di avvio montare un volume locale (scrivibile) su / privato; come detto, ciò ha consentito la modifica del runtime di / var e / tmp, nonché le impostazioni per computer in / etc.
Non è più necessario, poiché l'attuale sistema NetBoot di Apple utilizza un'immagine del disco shadow per memorizzare le modifiche in qualsiasi punto del volume di avvio. Ma alcuni programmi / documenti / ecc. Ora assumono che i file siano live / privati, quindi sarebbe troppo difficile ripristinarli ...
Mi sono sempre chiesto la stessa cosa. Non riesco a trovare alcuna documentazione per supportarlo, ma in genere questo modello viene utilizzato per semplificare l'archiviazione dei file su un altro volume (ad es. Disco rigido). Ciò consente all'unità di essere montata (ad esempio collegata) nel file system in un unico posto. Ad esempio quando l'unità è montata /private
e poi le cartelle /etc
, /tmp
e /var
sono quindi tutti situati su tale altra unità.
Quello che non posso dire è perché questo sarebbe utile. Vale la pena notare, tuttavia, che questi tre cartelle contengono file "dati" come la configurazione, temporanei, log, transitori e file di database, piuttosto che codice eseguibile contenuto nel /bin
, /sbin
e /usr
le cartelle.
Non sono sicuro del motivo storico, ma OS X ha sempre "riorganizzato" la tipica struttura Unix. /tmp
non è l'unica cosa che va /private
, ha anche /etc
e /var
.
Forse qualcuno con più background di OS X può trovare qualcosa di più ragionevole.
/tmp
è un linciaggio simbolico /private/etc
per mantenere 2 filesystem chiaramente separati:
/
che può essere montato in sola lettura, per proteggerlo da qualsiasi modifica accidentale o indesiderata e per proteggerlo dall'essere riempito con file sempre crescenti (registri e file temporanei),
/private
che può essere montato come lettura-scrittura e che contiene qualsiasi directory contenente file modificabili.
Se guardi /
noterai 3 directory che sono collegamenti simbolici simili per lo stesso motivo:
cd /
ls -al | grep '> private'
Questa separazione di accesso tra i filesystem di lettura-scrittura e di sola lettura non viene effettivamente utilizzata (in MacOS X), ma tutto è in atto per ottenere questa separazione di sicurezza.
Alcuni amministratori stanno applicando questa separazione di sicurezza definendo un /private
file system specifico con le dimensioni appropriate e le opzioni di montaggio appropriate (in particolare nosuid
).