echo $HOME
simplemente imprimirá /home/user
. Pero en mi sistema, /home
no está montado /
ni tampoco en su propia partición.
# shared linux data partition, `/home` is here
UUID=a89334f7-59b7-4d04-b89b-a5a30c379644 /mnt/linux_data ext4 defaults 1 2
El directorio de inicio se monta mediante un montaje de enlace,
# bind mount /home to directory to a directory on /linux_data
/mnt/linux_data/01_centos /home none bind 0 0
Al hacer clic en el icono del directorio de inicio en Caja, la barra de ubicación indica /home/user
. Pero este directorio debería ser /mnt/linux_data/01_centos/user
el que existe en esa ubicación. Puedo navegar /mnt/linux_data/01_centos/user
a través /root
del ícono en Caja, pero me gustaría algún medio para imprimir la ruta completa a lo que el sistema operativo cree que es /home
.
Respuesta1
$HOME
se establece en lo que está disponible /etc/passwd
para el usuario. Para comprobarlo usted mismo, cree un directorio llamado /opt/username
para un usuario, conviértalo en propietario y luego úselo vipw
para cambiar su inicio /opt/username
a /etc/passwd
. Inicie sesión como usuario y use pwd
y verá que están dentro /opt/username
y que $HOME
se expande a /opt/username
.
Si usa el comando grep username /etc/passwd
o getent passwd username
, verá que la casa está configurada en /home/username
y no /mnt/linux_data/01_centos/user
. En lo que respecta al sistema operativo, el hogar es, de hecho, /home/username
independientemente de si hay otro sistema de archivos montado allí. Su sistema está funcionando exactamente como debería.
Para aclarar sobre LDAP, si hay usuarios que se autentican a través de LDAP, sus directorios personales se designarán en el servidor LDAP, que suele ser Active Directory. Aún podrás verlo getent passwd
y, si cambia allí, la $HOME
variable lo reflejará.