¿Cómo puedo vincular mi carpeta de inicio desde otra unidad?

15

Más específicamente, quiero tener la carpeta de usuario para mi cuenta de inicio en otro disco que tenga más espacio, pero mantenga mis otras cuentas más pequeñas en mi SSD. Pude copiar mi carpeta de usuario a otro disco, pero ahora necesito vincularla a la carpeta de inicio en mi ssd, quiero que sea accesible desde un arranque normal, y no me digas que lo que hice no fue Lo mejor es que solo quiero una respuesta. ¿Cómo consigo que cree un enlace que vaya de / home / username a / extra-home / username y que el sistema reconozca al cargar las carpetas de usuario?

sbergeron
fuente

Respuestas:

21

Recuerde que sus permisos deberán ser los mismos. Además del enlace simbólico, en las distribuciones y sistemas de archivos más recientes, como root también puede usar bind-mount:

mkdir /home/username mount --bind --verbose /extra-home/username /home/username

Esto es útil para permitir el acceso "a través" del directorio / home a subdirecciones a través de demonios que de otro modo están configurados para evitar la ruta a través de enlaces simbólicos (apache, ftpd, etc.).

Tienes que recordar (o guión de inicio) para vincularte al reiniciar, por supuesto.

Joe Atzberger
fuente
No sabía que los enlaces simbólicos podrían crear tales problemas. ¿Cómo tratan esos demonios /var/run/?
Paul
1
Los servidores están diseñados para restringir el acceso al sistema de archivos local, para evitar comprometer el sistema. Puede pensar en esto como "cosas permitidas para usuarios remotos". No necesitan restringirse a sí mismos para acceder a / var / run (generalmente al inicio / apagado) como "cosas permitidas para este proceso". Consulte la directiva FollowSymLinks de Apache para obtener un ejemplo de cómo permitir que el sistema de archivos servido atraviese enlaces simbólicos, si lo desea.
Joe Atzberger
¿podemos también expandir / bin y / lib de la misma manera (puede ser útil en sistemas de archivos pequeños)?
ransh
¿Necesita su sistema /biny /liben la inicialización (es decir, antes de que pueda ejecutar el mountcomando)? Si es así, entonces no puede emplear esta estrategia.
Joe Atzberger el
2
Agregar información aquí, ya que tuve que buscarla, una vez hecho esto para agregar init en / etc / fstab aquí está el formulario. Al usar el método que Joe describió mount --bind --verbose /extra-home/username /home/username, la línea /etc/fstabsería/extra-home/username /home/username none defaults,bind 0 0
Wilken
9

De acuerdo con esta pregunta en Super Usuario, esto es posible.

Puede crear un enlace simbólico usando:

ln -s /extra-home/username /home/username

Si por alguna razón no funciona, puede eliminar el enlace simbólico, mover el directorio hacia atrás y reiniciar su computadora.

Louis Matthijssen
fuente
Si es una carpeta simple, debe comenzar con / media / {hardrive_name} / {your folder}. Acabo de probar esto en un servidor Debian y funciona.
answerSeeker
2

Yo intentaría esto:

Habiendo iniciado sesión como un usuario diferente, en un intérprete de comandos (por ejemplo sudo -i), copiar el contenido de /home/usernamea /extra-home/usernamey asegúrese de que la nueva ubicación es propiedad de username:

# cp -p /home/username /extra-home/
# chown username:username /extra-home/username

Mueva el /home/username/directorio original a un lugar seguro:

# mv /home/username /root/

Crea el enlace simbólico:

# ln -s /extra-home/username /home/username

Verifique que esté funcionando como se esperaba abriendo otra ventana de terminal y ejecutando su:

$ sudo su username

Si todo se ve bien, al menos desde la terminal (el contenido /home/username/aparece como se esperaba), cierre la sesión y vuelva a iniciarla (supongo que está en el escritorio de Ubuntu) y debería funcionar normalmente. Sin embargo, si no es así, simplemente elimine el enlace simbólico y mueva la carpeta de inicio archivada a su ubicación original.

Pablo
fuente