5 votos

Ubicación del directorio root en MacOS

Todos los sistemas operativos tipo Unix que he visto utilizan /root como directorio principal para el root cuenta. ¿Cuál es la razón por la que se trasladó a /var/root en MacOS? ¿Puedo cambiarla por la habitual /root ?
Necesito ejecutar algunos scripts en MacOS que hardcodean /root como el directorio principal de root. Además, pensé que /var era para los datos variables (spool, archivos de registro, etc.).

1 votos

Estás patinando cerca de una pregunta que pide a alguien que adivine por qué Apple hace una cosa. Lo que podría hacer que se borrara tu pregunta porque nos ocupamos de los hechos y no de adivinar por qué una empresa hace algo.. Si amplía su pregunta con lo que está tratando de lograr podría ayudar.

0 votos

Además, ¿por qué crees que debería ser /Root?

1 votos

Si los scripts hardcode Root ¿qué otras cosas no estándar hacen que fallarán en MacOS?

6voto

Jose Chavez Puntos 645

Creo que el problema es que no se han visto muchos sistemas operativos tipo Unix. Tradicionalmente con los sistemas operativos tipo Unix, usted tendría realmente el directorio root del usuario en / .

Si ha trabajado con Linux o quizás con FreeBSD, esperará que el directorio root del usuario esté en /root - pero no es realmente "dado por Dios".

Hay muchos ejemplos de sistemas operativos tipo Unix que utilizan distintas ubicaciones. Por ejemplo, en los sistemas HP-UX, no se perdería de vista que el directorio de inicio se encuentra en /homeroot . Del mismo modo, en MacOS se encuentra en /var/root .

En cuanto a su suposición sobre el uso de la /var carpeta: Tradicionalmente no ha habido ningún tipo de consenso firme sobre para qué se utiliza cada una de las carpetas tradicionales del sistema (por ejemplo /etc, /usr, /usr/local, /lib, /etc.). Esto puede variar de un sistema operativo a otro.

Normalmente se diría que el /var es para los datos variables - sin embargo, eso no significa que se limite a los archivos de spool o de registro, como usted escribe. Significa que el contenido de la carpeta puede cambiar mientras se usa el sistema - en contraste con, por ejemplo, /bin, donde tradicionalmente se podía asumir que esta carpeta podía ser simplemente reinstalada desde el medio de instalación original. En este sentido, las carpetas de inicio del usuario Root se ajustan a la descripción. Normalmente no se quiere en /home o /Users ya que podría ser un sistema de archivos en red, y tradicionalmente se quería que el usuario Root pudiera siempre ser capaz de iniciar sesión para la recuperación del sistema.

En MacOS se puede cambiar la ubicación del directorio root del usuario. Para fines de recuperación, cambie la ubicación en /etc/passwd . Para el uso ordinario, cámbielo en el Open Directory.

Puedes ver la configuración actual con:

dscl . -read Users/root | grep NFSHomeDirectory

Y cámbialos por:

dscl . -change Users/root NFSHomeDirectory <old> <new>

donde y se sustituyen por las rutas correspondientes.

3voto

Michael Zhou Puntos 167

Una solución sencilla sería utilizar la expansión de tildes en los scripts en lugar de una ubicación codificada.

Ejemplo:

ls -ld ~root

0 votos

Pero qué más está codificado - necesitas leer cada línea de ese script para comprobarlo especialmente porque se ejecuta como Root así que podría hacer cualquier cosa

3voto

gerowam Puntos 121

Creo que es una pregunta mejor de lo que parece porque llega a algunos hechos a nivel de sistema que son un poco opacos e históricos.

En primer lugar, la razón por la que los sistemas GNU/Linux, BSD y algunas otras variantes de Unix tienden a poner el directorio root del usuario en /root/ es mantenerlo fuera de /home/ que a menudo es un montaje separado - potencialmente montado a través de una red. Si el /home/ falla el montaje, querrías que Root mantuviera el acceso a su directorio root.

En segundo lugar, aunque es específico de Linux, el estándar de jerarquía de archivos ( https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard ) es una explicación bastante buena de qué va a dónde y por qué. En GNU/Linux, BSD y variantes comerciales de Unix, /var/ es para archivos "variables" que cambian a menudo. Cosas como bases de datos, registros, sockets, etc. Esto, de nuevo, es para proporcionar la capacidad de un /var/ montaje, que podría ser configurado u optimizado para archivos más volátiles.

En tercer lugar, mi adivinar sobre mi Apple movió el directorio de inicio de Root a /var/ es que coincidió con un movimiento hacia un sistema más "sin root" (SIP; https://en.wikipedia.org/wiki/System_Integrity_Protection ). Con un sistema sin root, el directorio root es significativamente menos importante. Moverse puede ser una forma indirecta de señalar un cambio en el uso de root en MacOS. Y tal vez en un sistema ideal sin root, el directorio principal de Root es puramente vestigial - utilizado para acomodar las aplicaciones heredadas que, por cualquier razón, necesitaban que Root tuviera algún directorio principal. Que Apple puso en /var/ sólo puede sugerir que pensaron que los usos sin root del directorio principal de Root estaban más en casa en /var/ que en otros lugares.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X