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

35

¿Por qué es /tmp un enlace simbólico a /private/tmp en Mac OS X? En otras palabras, ¿por qué no es /tmp solo un directorio regular, como en Linux o BSD? Entiendo cómo funciona y no me importa, solo estoy interesado en el (¿histórico?) Razonamiento detrás de él.

    
pregunta otto.poellath 02.09.2010 - 09:40

4 respuestas

32

AIUI es un remanente de NextStep (en el que se basa OS X), y NextStep lo hizo para soportar NetBooting. La idea era que se podía iniciar desde un volumen alojado en la red (probablemente solo lectura, y ciertamente compartido con otras computadoras), y desde el principio en el proceso de inicio montar un volumen local (grabable) en / private; como se mencionó anteriormente, 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 utiliza una imagen de disco en la sombra para almacenar los cambios en cualquier lugar del volumen de arranque. Pero algunos programas / docs / etc ahora asumen que los archivos están en vivo en / private, por lo que sería demasiado problema volver a cambiarlos ...

    
respondido por el Gordon Davisson 03.09.2010 - 04:35
5

Siempre me he preguntado lo mismo. No puedo encontrar ninguna documentación que lo respalde, pero, por lo general, este patrón se usa para que sea más fácil almacenar archivos en otro volumen (por ejemplo, un disco duro). Esto permite montar la unidad (por ejemplo, adjuntarla) en el sistema de archivos en un solo lugar. Por ejemplo, cuando la unidad se monta en /private y luego las carpetas /etc , /tmp y /var están ubicadas en esa otra unidad.

Lo que no puedo decir es por qué esto sería beneficioso. Cabe destacar, sin embargo, que estas tres carpetas contienen archivos de "datos" como los archivos de configuración, temporales, de registro, transitorios y de base de datos, en lugar del código ejecutable incluido en las carpetas /bin , /sbin y /usr .

    
respondido por el g . 02.09.2010 - 20:53
1

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

Tal vez alguien con más antecedentes de OS X pueda encontrar algo más razonable.

    
respondido por el Martin Marconcini 02.09.2010 - 14:56
-1

/tmp es un enlace simbólico a /private/etc para mantener 2 sistemas de archivos claramente separados:

  • / que se puede montar como solo lectura, para protegerlo contra Cualquier modificación accidental o no deseada, y para protegerla de que se llene con archivos que aumentan constantemente (registros y archivos temporales),

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

Si observa / , observará que hay 3 directorios similares enlaces simbólicos por esta misma razón:

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 lograrlo esta separación de seguridad.

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

    
respondido por el daniel Azuelos 17.08.2016 - 08:30

Lea otras preguntas en las etiquetas