Imprimir la ruta completa al directorio de inicio

Imprimir la ruta completa al directorio de inicio

echo $HOMEsimplemente imprimirá /home/user. Pero en mi sistema, /homeno 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/userel que existe en esa ubicación. Puedo navegar /mnt/linux_data/01_centos/usera través /rootdel í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

$HOMEse establece en lo que está disponible /etc/passwdpara el usuario. Para comprobarlo usted mismo, cree un directorio llamado /opt/usernamepara un usuario, conviértalo en propietario y luego úselo vipwpara cambiar su inicio /opt/usernamea /etc/passwd. Inicie sesión como usuario y use pwdy verá que están dentro /opt/usernamey que $HOMEse expande a /opt/username.

Si usa el comando grep username /etc/passwdo getent passwd username, verá que la casa está configurada en /home/usernamey no /mnt/linux_data/01_centos/user. En lo que respecta al sistema operativo, el hogar es, de hecho, /home/usernameindependientemente 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 passwdy, si cambia allí, la $HOMEvariable lo reflejará.

información relacionada