Me gustaría saber si hay algún comando de shell simple para cambiar el directorio de inicio del usuario en Linux / Unix (uno similar a chsh que cambia el shell de inicio de sesión predeterminado de un usuario válido existente) sin tocar el /etc/passwdarchivo. Gracias
203

/etc/passwdarchivo? ¡Tendrás que hacerlo!usermod -d /home/userxx /home/useryypara cambiar el directorio de inicio de sesión predeterminado de Linux a / home / useryychshno cambia el shell de inicio de sesión predeterminado , sino solo el shell de inicio de sesión de un usuario determinado ... Para cambiar elHOMEde un usuario en particular, solo edite/etc/passwdRespuestas:
El comentario de Ibrahim sobre la otra respuesta es la forma correcta de alterar el directorio de inicio de un usuario existente.
Cambiar el directorio de inicio del usuario:
usermodes el comando para editar un usuario existente.-d(abreviatura de--home) cambiará el directorio de inicio del usuario.Cambiar el directorio de inicio del usuario + Mover el contenido del directorio actual del usuario:
-m(abreviatura de--move-home) moverá el contenido del directorio actual del usuario al nuevo directorio.fuente
/home/usernametípicamente) se elimina./newhome/usernameargumento será el directorio de inicio del usuario. Puede volver a configurarlo en su directorio de inicio anterior si sabe lo que era, pero no hay una opción de "deshacer".usermod -m -d /newhome/username usernametrabajos.Desde el directorio de inicio de usuario predeterminado de Linux Change al agregar un nuevo usuario :
fuente
usermod -m -d /path/to/new/login/home/dir usercambia el directorio de inicio del usuario existente a un nuevo directorio de inicio de sesión que se crea si aún no existe, la opción -m mueve el contenido del directorio de inicio actual al nuevo directorio de inicioLa respuesta aceptada es defectuosa, ya que los contenidos de la carpeta de usuario inicial no se mueven al usarla. Voy a agregar otra respuesta para corregirlo:
No necesita crear la carpeta con nombre de usuario y esto también moverá sus archivos de la carpeta de usuario inicial a la carpeta / newhome / username.
fuente
En caso de que otros lectores busquen información sobre el
addusercomando.Editar
/etc/adduser.confEstablecer
DHOMEvariablefuente
Descubrimos que esto rompe algunas aplicaciones, la mejor manera de hacerlo es
Además del enlace simbólico, en las distribuciones y sistemas de archivos más recientes, como root también puede usar bind-mount:
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.
Un ejemplo de script de inicio en
/etc/fstabesfuente
usermod -m -d / newhome nombre de usuario
fuente