Por que / tmp é um link simbólico para / private / tmp?

37

Por que existe /tmpum link simbólico /private/tmpno Mac OS X? Em outras palavras, por que não é /tmpapenas um diretório comum, como no Linux ou BSD? Entendo como funciona e não me importo, apenas estou interessado no raciocínio (histórico?) Por trás disso.

otto.poellath
fonte

Respostas:

33

AIUI é uma reserva do NextStep (no qual o OS X se baseia), e o NextStep fez isso para dar suporte ao NetBooting. A ideia era que você pudesse inicializar a partir de um volume hospedado na rede (provavelmente somente leitura e certamente compartilhado com outros computadores) e, no início do processo de inicialização, monte um volume local (gravável) em / private; como g mencionado, isso permitiu a modificação em tempo de execução de / var e / tmp, bem como as configurações por computador em / etc.

Isso não é mais necessário, pois o sistema NetBoot atual da Apple usa uma imagem de disco sombra para armazenar alterações em qualquer lugar do volume de inicialização. Mas alguns programas / docs / etc agora assumem que os arquivos estão em / private, por isso seria muito difícil alterná-los novamente ...

Gordon Davisson
fonte
"Mas alguns programas / docs / etc" lolpun (etc é ligada simbolicamente a / private / etc)
Kevin Wheeler
5

Eu sempre me perguntei a mesma coisa. Não consigo encontrar nenhuma documentação para suportá-lo, mas normalmente esse padrão é usado para facilitar o armazenamento de arquivos em outro volume (por exemplo, disco rígido). Isso permite que a unidade seja montada (por exemplo, conectada) no sistema de arquivos em um só lugar. Por exemplo, quando a unidade é montada em /privatee, em seguida, as pastas /etc, /tmpe /varsão, então, todos localizados em que outra unidade.

O que não posso dizer é por que isso seria benéfico. É interessante notar, no entanto, que estas três pastas contêm "dados" arquivos como configuração, temporária, log, transitória e arquivos de banco de dados ao invés de código executável contido no /bin, /sbine /usrpastas.

g.
fonte
1

Não tenho certeza sobre o motivo histórico, mas o OS X sempre "reorganizou" a estrutura típica do Unix. /tmpnão é a única coisa que serve /private, mas também tem /etce /var.

Talvez alguém com mais experiência com o OS X possa criar algo mais razoável.

Martin Marconcini
fonte
-1

/tmpé um lince simbólico /private/etcpara manter 2 sistemas de arquivos claramente separados:

  • / que pode ser montado como somente leitura, para protegê-lo contra qualquer modificação acidental ou indesejada e para protegê-lo de estar sempre cheio de arquivos cada vez maiores (registros e arquivos temporários),

  • /private que pode ser montado como leitura e gravação e que contém qualquer diretório que contenha arquivos modificáveis.

Se você olhar /, notará 3 diretórios que são links simbólicos semelhantes pelo mesmo motivo:

cd /
ls -al | grep '> private'

Essa separação de acesso entre sistemas de arquivos de leitura e gravação e somente leitura não é usada na verdade (no MacOS X), mas está tudo pronto para alcançar essa separação de segurança.

Alguns administradores estão aplicando essa separação de segurança, definindo um /private sistema de arquivos específico com o tamanho e as opções de montagem apropriados (principalmente nosuid).

dan
fonte