¿Por qué es / tmp un enlace simbólico a / private / tmp?

37

¿Por qué es /tmpun enlace simbólico /private/tmpen Mac OS X? En otras palabras, ¿por qué no es /tmpsolo un directorio normal, como en Linux o BSD? Entiendo cómo funciona y no me importa, solo estoy interesado en el razonamiento (¿histórico?) Detrás de esto.

otto.poellath
fuente

Respuestas:

33

AIUI es un remanente de NextStep (en el que se basa OS X), y NextStep lo hizo para admitir NetBooting. La idea era que podía arrancar desde un volumen alojado en la red (probablemente de solo lectura, y ciertamente compartido con otras computadoras), y al principio del proceso de arranque montar un volumen local (grabable) en / privado; Como se mencionó, esto permitió la modificación en tiempo de ejecución de / var y / tmp, así como la configuración por computadora en / etc.

Esto ya no es necesario, ya que el sistema NetBoot actual de Apple usa una imagen de disco oculta para almacenar los cambios en cualquier parte del volumen de arranque. Pero algunos programas / documentos / etc. ahora suponen que los archivos viven bajo / privado, por lo que sería demasiado problema volverlos a cambiar ...

Gordon Davisson
fuente
"Pero algunos programas / docs / etc" lolpun (etc está enlazado a / private / etc)
Kevin Wheeler
5

Siempre me he preguntado lo mismo. No puedo encontrar ninguna documentación que lo respalde, pero generalmente este patrón se utiliza para facilitar el almacenamiento de archivos en otro volumen (por ejemplo, disco duro). Esto permite que la unidad se monte (por ejemplo, adjunta) en el sistema de archivos en un solo lugar. Por ejemplo, cuando la unidad está montada en /privatey luego las carpetas /etc, /tmpy /varestán entonces todo situado en que otra unidad.

Lo que no puedo decir es por qué esto sería beneficioso. Vale la pena señalar, sin embargo, que estas tres carpetas contienen archivos de "datos" como la configuración, temporal, registro, transitoria y archivos de base en lugar de código ejecutable contenido en el /bin, /sbiny /usrcarpetas.

g.
fuente
1

No estoy seguro de la razón histórica, pero OS X siempre "reorganizó" la estructura típica de Unix. /tmpno es lo único a lo que va /private, también tiene /etcy /var.

Quizás alguien con más experiencia en OS X pueda llegar a algo más razonable.

Martin Marconcini
fuente
-1

/tmpes un enlace simbólico /private/etcpara mantener 2 sistemas de archivos claramente separados:

  • / que se puede montar como de solo lectura, para protegerlo contra cualquier modificación accidental o no deseada, y para protegerlo de que se llene de archivos cada vez mayores (registros y archivos temporales),

  • /private que se puede montar como lectura-escritura y que contienen cualquier directorio que contenga archivos modificables.

Si observa /, observará 3 directorios que son enlaces simbólicos similares por este mismo motivo:

cd /
ls -al | grep '> private'

Esta separación de acceso entre los sistemas de archivos de lectura-escritura y de solo lectura no se usa en realidad (en MacOS X), pero todo está en su lugar para lograr esta separación de seguridad.

Algunos administradores están aplicando esta separación de seguridad al definir un /private sistema de archivos específico con el tamaño apropiado y las opciones de montaje apropiadas (más notablemente nosuid).

dan
fuente