18 votos

Mac OS X - Cómo vincular simbólicamente /home a /Usuarios

Para los que nos dedicamos a los pingüinos y las manzanas, parece que merece la pena poder utilizar las rutas /home, ya sea por costumbre o para esos casos raros en los que el valor puede haberse sincronizado en algún momento en algún archivo que utilices en ambas máquinas.

7 votos

~username se expande a su directorio de inicio independientemente de Mac OSX o Linux.

1 votos

Soy consciente de ello, pero algunas aplicaciones multiplataforma guardan rutas absolutas. Un ejemplo es Sublime Text 2.

1 votos

De hecho ~ se expande a tu directorio personal. ¿Puede usted por favor aclarar en su pregunta si desea symlink a su usuario directorio principal (es decir. /Users/[username] ) o, de hecho, el propio directorio de usuario ( /Users/ ) que contiene directorios separados para todos los usuarios de la máquina?

22voto

yoliho Puntos 340

sudo ln -s /Users /home funcionará con una configuración adicional, pero no creo que sea una buena idea ya que deberías acceder a home a través de ~ en concha o $HOME . También /home puede ser un estándar de Linux y a menudo se utiliza en Unix, pero no siempre, así que es mejor confiar en la información que está garantizado que funciona no algo que funciona sólo la mayor parte del tiempo si todo el mundo ha mantenido a una convención.

Para hacer sudo ln -s /Users /home funciona, sigue estos pasos (de los comentarios):

EDITOR=nano sudo -e /etc/auto_master
# add a "#" at the start of the line beginning with /home
# save changes
sudo automount -cv
sudo ln -s /Users /home

7 votos

Primera edición /etc/auto_master y comenta la línea de inicio. Luego reinicie para liberar el recurso /home existente. Entonces usted puede symlink el directorio usando lo siguiente. ln -s /Users /home . Hasta que no haga esto, simplemente no se le permitirá crear el enlace simbólico ya que el recurso está ocupado.

2 votos

@AR. ¿hay alguna consecuencia negativa potencial de hacerlo (o por qué está ahí en primer lugar?). Y no se me permite editarlo incluso como Root o después de chmod a+w /etc/auto_master ¿hay otra manera?

3 votos

-1. El resultado es un operation not supported mensaje

8voto

Wolfram Kriesing Puntos 1141

Lamento que esta respuesta no sea exactamente fidedigna, ya que nunca he hecho esto yo mismo -aunque he utilizado un contador automático similar en otros sistemas Unix- pero esto es lo que yo entiendo por /home en OS X.

Así que, sigamos el rastro:

Si primero escribe mount en Terminal para mostrar los montajes activos, verás esta línea:

map auto_home on /home (autofs, automounted, nobrowse)

autofs se definen en /etc/auto_master y /home se define a su vez específicamente en /etc/auto_home . Si echa un vistazo a /etc/auto_home verás esta línea:

+/usr/libexec/od_user_homes

Siga el sendero un paso más hasta el od_user_homes página de manual y encontrarás un programa cuyo propósito es tomar un nombre de usuario, buscarlo en Open Directory y devolver una URL al directorio personal de ese usuario. Si lees sobre auto_master en su página man Cuando se utiliza un programa ejecutable para un mapa, se llama a ese programa para que busque una URL para montar, que a su vez se monta en el lugar.

La aplicación prevista parece ser que, si su Mac está conectado a un servicio de directorio, ir a /home/jdoe hará que el contador automático monte jdoe allí.

En base a esto, parece lógico concluir que si usted no tiene intención de conectar su Mac a un servicio de directorio, es probable que esté bien la eliminación de la /home montaje automático como se detalla en este comentario . Sin embargo, no sé cómo lo solucionarán las futuras actualizaciones del sistema operativo.

1 votos

Me gusta usar el contador automático, en lugar de desactivarlo. Así que dejaría que el contador automático montara /Usuarios/$USUARIO en /home/$USUARIO. Me pregunto si es tan simple como reemplazar esa línea en /etc/auto_home con algo como "+/bin/echo /home/$1", o si quieres un manejo de errores adecuado, crear un script que replique lo que hace od_user_homes

0 votos

@TimB Interesante reflexión. Después de haber jugado con él un poco, no estoy del todo seguro de que se puede especificar una ruta local que automountd se ocupará, sin embargo. Parece posible hacer NFS, SMB y AFS.

0 votos

No sé si eso funciona en Linux, pero era lo que siempre hacía en Solaris. El directorio real era /export/home/$USER, y había una configuración estándar para montarlo automáticamente en /home/$USER. De hecho, parece que ahora es la configuración estándar en Solaris 11.x según blogs.oracle.com/observatory/entry/automounted_home_directory

1voto

Zombies Puntos 5977

No sirve de nada /home . OS X, al igual que otras versiones de Unix, tiene una ubicación única para el usuario. En Linux está en /home/user y en OS X está en /Users . Por eso es una buena práctica utilizar la abreviatura " ~ "o la variable de entorno $HOME .

Aunque puede crear un enlace simbólico al directorio base/home del usuario /Users/[username] utilizando el siguiente comando:

ln -s ~ /foo

No funcionará crear un enlace llamado /home puesto que ya existe un directorio (no utilizado) con ese nombre en root del sistema.

1 votos

Exactamente. He estado en otros sistemas tipo Unix que utilizaban otras convenciones para los directorios personales por diversas razones, por ejemplo /export/home/username en Solaris. Es una mala práctica asumir /home/username funcionará. Los programas que buscan directorios de inicio deben utilizar getpwnam o getpwuid .

1 votos

Estoy totalmente de acuerdo en que es una mala práctica que los programas den por supuesta su existencia, pero eso no quita que a veces el software no se desarrolle de forma competente.

0 votos

Entre los montajes en mi caso y en otros: map auto_home on /home (autofs, automounted, nobrowse) aunque desconozco el origen de esa montura, debo discrepar con "no sirve para /home ".

1voto

tmarkiewicz Puntos 21

Intenté esto antes y conseguí que funcionara durante una semana hasta que reinicié...

No se puede simplemente symlink /home a /Users . De hecho, ni siquiera se puede eliminar /home .

Si consigue eliminar /home reaparecerá después de reiniciar.

Si te mueves /home a /home.old y enlace simbólico /home eliminará el enlace simbólico /home .

Puedes tener esto funcionando mientras tu mac no se cuelgue o reinicie.

Cuando reinicias, ¡todo desaparece!

Cuando reinicias, Mac OS X parece pensar que estás creando un nuevo usuario, por lo que sobrescribirá todas tus preferencias de usuario en tu antiguo /Users/username directorio.

Ya que has copiado todo en /home/username espera ver su nuevo directorio de inicio al hacer ls /home después de reiniciar. En lugar de eso, ¡¡¡no consigues NADA!!! Es como si nunca hubiera existido.

En mi caso, estuve flipando unos 30 minutos, luego arranqué en modo usuario único para ver si se podía hacer algo. Estaba pensando que podría ser capaz de agarrar un archivo de registro o tratar de iniciar una utilidad de reparación.

En el modo de usuario único, mi directorio personal estaba allí. Apple intencionadamente oculta los directorios recién creados en /home del usuario cuando está en modo multiusuario. Esta es una característica de diseño intencionadamente maligna.

Apple es cojo y desaconseja todo tipo de pirateo de su sistema operativo. ¿Qué clase de característica de diseño es esa? Apple oculta el contenido de la recién creada /home directorio. No existe ninguna razón legítima para que Apple elimine automáticamente el directorio /home ni ningún directorio creado por el usuario.

En este caso, están montando un directorio sobre tu directorio /home... ocultándolo efectivamente.

Si está realmente decidido a utilizar /home en lugar de /Users Si no lo hace, puede evitarlo escribiendo un script para configurar todo en cada arranque.

Además, debo mencionar que usted debe ser capaz de utilizar algún otro directorio que no es /home en sustitución de /Users porque sólo /home está prohibido.

Si utilizas bash, tendrás que configurar algunas de las variables de entorno... a saber: CD_HOME y HOME .

Quiero añadir que...aunque no se puede desmontar o forzar el desmontaje /home , tú puede montar un disco sobre /home . Todo ello montado sobre "auto_home".

Pude montar el disco de recuperación encima de /home con éxito... tal vez sea así como puede hacerse.

0 votos

TL/DR; la personalización a prueba de reinicios es posible utilizando la respuesta mejor valorada

0voto

Mose Puntos 687

No veo razón alguna para no renombrar el directorio /home (por si me equivoco) y crear un enlace simbólico de /home a /Usuarios (o, como en mi máquina, /Volúmenes/Usuarios ya que mi disco de sistema es para sistema, ¡coño!).

Solía trabajar como administrador de sistemas, en un departamento universitario con 11 sabores de unix. Teníamos todo tipo de enlaces simbólicos en el árbol de directorios global para que el sistema de archivos hiciera lo correcto, y scripts se acercaban lo más posible a funcionar en todas partes. Te encuentras con algunas trampas, pero si tus dedos están acostumbrados a teclear /home/foo y un enlace simbólico pospone el reciclaje de tus dedos, adelante.

Del mismo modo algunos linuxen ya tendrán directorios home como /usr/home.

En un lugar en el que trabajé había directorios de inicio /Usuarios/{grupo}/{nombredeusuario} como protección parcial contra los estudiantes que se arrastran por los archivos de los profesores si el profesor era descuidado con sus permisos. El directorio Usuarios tenía bits de ejecución pero no de lectura, y los directorios de grupo sólo podían leerlos los miembros del grupo.

(Todo esto como ilustración de que hay muchas formas de privar a este particular felino de su pelaje).

Un posible problema: comprueba que la máquina del tiempo no acabe haciendo dos copias de todo. No sé cómo TM trata symlinks. Si lo hace, entonces agregue /home a la lista de exclusión de TM.

1 votos

Si algo o alguien establece un modo inapropiado o ACL para su alternativa a /Users entonces es probable que las rutinas conocidas para reparar los permisos no consigan realizar las correcciones necesarias. Así que recomiendo que /Users debe ser como lo instala Apple: un directorio, no un enlace simbólico.

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