Dlaczego / tmp jest dowiązaniem symbolicznym do / private / tmp?

37

Dlaczego /tmpdowiązanie symboliczne do /private/tmpMac OS X? Innymi słowy, dlaczego nie jest /tmpto zwykły katalog, taki jak w Linuksie lub BSD? Rozumiem, jak to działa i nie mam nic przeciwko, interesuje mnie (historyczne?) Uzasadnienie tego.

otto.poellath
źródło

Odpowiedzi:

33

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 ...

Gordon Davisson
źródło
„Ale niektóre programy / docs / etc” lolpun (etc jest symlinkowane do / private / etc)
Kevin Wheeler
5

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, /tmpi /varnastę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, /sbini /usrfoldery.

g.
źródło
1

Nie jestem pewien historycznego powodu, ale OS X zawsze „reorganizował” typową strukturę uniksową. /tmpnie jest jedyną rzeczą, do której należy /private, ale ma /etci /var.

Może ktoś z większym doświadczeniem w OS X może wymyślić coś bardziej rozsądnego.

Martin Marconcini
źródło
-1

/tmpto 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).

dan
źródło