Dlaczego /tmp
dowiązanie symboliczne do /private/tmp
Mac OS X? Innymi słowy, dlaczego nie jest /tmp
to zwykły katalog, taki jak w Linuksie lub BSD? Rozumiem, jak to działa i nie mam nic przeciwko, interesuje mnie (historyczne?) Uzasadnienie tego.
Dlaczego /tmp
dowiązanie symboliczne do /private/tmp
Mac OS X? Innymi słowy, dlaczego nie jest /tmp
to zwykły katalog, taki jak w Linuksie lub BSD? Rozumiem, jak to działa i nie mam nic przeciwko, interesuje mnie (historyczne?) Uzasadnienie tego.
Odpowiedzi:
AIUI to pozostałość od NextStep (na której oparty jest OS X), a NextStep zrobił to, by wspierać NetBooting. Pomysł polegał na tym, że można było uruchomić system z wolumenu hostowanego w sieci (prawdopodobnie tylko do odczytu iz pewnością współużytkowanego z innymi komputerami), a na początku procesu rozruchu podłączyć lokalny (zapisywalny) wolumin na / private; jak wspomniano g, pozwoliło to na modyfikację środowiska wykonawczego / var i / tmp, a także ustawień na komputer w / etc.
Nie jest to już potrzebne, ponieważ obecny system NetBoot firmy Apple używa obrazu dysku w tle do przechowywania zmian w dowolnym miejscu na woluminie rozruchowym. Ale niektóre programy / docs / etc zakładają teraz, że pliki znajdują się w katalogu / private, więc przywrócenie ich z powrotem byłoby zbyt wielkim problemem ...
Zawsze zastanawiałem się nad tym samym. Nie mogę znaleźć żadnej dokumentacji, która by to obsługiwała, ale zazwyczaj ten wzorzec służy do ułatwienia przechowywania plików na innym wolumenie (np. Dysku twardym). Umożliwia to zamontowanie napędu (np. Podłączenie) w systemie plików w jednym miejscu. Na przykład, gdy napęd jest zamontowany /private
, a następnie foldery /etc
, /tmp
i /var
następnie są zlokalizowane na tym drugim dysku.
Nie mogę powiedzieć, dlaczego byłoby to korzystne. Warto jednak zauważyć, że te trzy foldery zawierają „dane” plików, takich jak konfiguracja, tymczasowej, log, przemijające i plików baz danych niż kod wykonywalny zawarty w /bin
, /sbin
i /usr
foldery.
Nie jestem pewien historycznego powodu, ale OS X zawsze „reorganizował” typową strukturę uniksową. /tmp
nie jest jedyną rzeczą, do której należy /private
, ale ma /etc
i /var
.
Może ktoś z większym doświadczeniem w OS X może wymyślić coś bardziej rozsądnego.
/tmp
to symboliczny lynk /private/etc
, aby utrzymać wyraźnie oddzielone 2 systemy plików:
/
które mogą być montowane jako tylko do odczytu, aby zabezpieczyć je przed przypadkową lub niechcianą modyfikacją i zabezpieczyć przed zapełnianiem się stale rosnącymi plikami (logi i pliki tymczasowe)
/private
które mogą być montowane jako odczyt-zapis i które przechowują dowolny katalog zawierający modyfikowalne pliki.
Jeśli spojrzysz na /
to, zauważysz 3 katalogi, które są podobnymi symbolicznymi linkami z tego samego powodu:
cd /
ls -al | grep '> private'
Ta separacja dostępu między systemami odczytu i zapisu a systemami tylko do odczytu nie jest faktycznie stosowana (w MacOS X), ale wszystko jest gotowe do osiągnięcia tego bezpieczeństwa.
Niektórzy administratorzy wymuszają tę separację bezpieczeństwa, definiując konkretny /private
system plików z odpowiednim rozmiarem i odpowiednimi opcjami montażu (przede wszystkim nosuid
).