Cómo cambiar el directorio de inicio del usuario actualmente conectado

17

Actualmente estoy conectado a un servidor CentOS y me gustaría cambiar mi directorio de inicio de /home/myuserName/a/var/www/html/

Intenté el siguiente comando:

> sudo usermod -d /var/www/html myuserName

Pero esto me da un error:

usermod: user myUserName is currently logged in
Mohan
fuente
2
No estoy seguro de lo que quiso decir, HOME=/var/www/htmlcambiará para la sesión su directorio de inicio.
Archemar
Eso ayuda, pero me gustaría cambiar mi directorio de inicio de forma permanente, no solo para la sesión actual.
Mohan

Respuestas:

17

respuesta corta : no puedes.

respuesta larga :

HOMEdir se establece en el /etc/passwdsexto campo. Se lee al iniciar sesión, su shell se inicia con este directorio de inicio.

La forma correcta de cambiar el directorio de inicio de Joe es:

  • Joe cierra la sesión.
  • use usermod -d /new/home joe para cambiar el directorio de inicio para la sesión posterior.

Una vez que se ejecuta la sesión, debe hacer dos cosas:

  • edite $HOMEpara cambiar el directorio de inicio de la sesión (se repetirá en todas las sesiones activas).
  • use sudo vipwpara editar el directorio de inicio para la próxima sesión

Además, tenga en cuenta que podría tener un problema con los permisos / propiedad en /var/www/html

Archemar
fuente
1
edit / etc / passwd siempre funcionó para mí. Ver @ 7171u a continuación
jeffmcneill
edición / etc / passwd sin cerrar sesión / iniciar sesión?
Archemar
editando / etc / passwd para una cuenta que ha iniciado sesión, y luego inicia una nueva sesión con esa misma cuenta, y obedece al nuevo directorio de inicio. Para la cuenta que ya inició sesión, esa sesión todavía tiene la antigua ubicación de inicio en el Entorno.
jeffmcneill
8

El comando usermod no funcionará si ha iniciado sesión con el usuario en el que está intentando realizar cambios.

Desde la página del manual en usermod dice:

CAVEATS usermod no le permitirá cambiar el nombre de un usuario que ha iniciado sesión. Debe asegurarse de que el usuario nombrado no esté ejecutando ningún proceso cuando se ejecute este comando si se cambia la ID numérica del usuario. Debe cambiar el propietario de cualquier archivo crontab manualmente. Debe cambiar el propietario de cualquiera de los trabajos manualmente. Debe realizar cualquier cambio relacionado con NIS en el servidor NIS.

Intente iniciar sesión con un usuario diferente y ejecute el comando nuevamente.

Si eso no es posible, puede editar manualmente el archivo / etc / passwd (que en realidad es lo que está haciendo el comando usermod). Si lo hace, asegúrese de hacer una copia de seguridad del archivo en caso de que, sin darse cuenta, haga algo tonto.

MattM
fuente
7

Debe editar el /etc/passwdarchivo para cambiar el directorio de inicio de los usuarios que están actualmente conectados.

Edite /etc/passwdcon sudo vipwy cambie el directorio de inicio del usuario.

vipwSe recomienda encarecidamente otros vimeditores u otros, ya vipwque establecerá el bloqueo para evitar la corrupción de datos.

7171u
fuente
2

Un par de posibles soluciones, dependiendo de lo que espera resolver:

Opción 1. Agregar HOME=/var/www/htmla su .bashrc

Opción 2. Cambie el nombre /home/myusernamey luego cree un enlace simbólico al directorio deseado.

mv /home/myusername /home/myusername-old
ln -s /var/www/html /home/myusername
Dax Kerchner
fuente
Mal hábito. después de eso, myusername-old no puede ser utilizado por otro usuario
GeoMint
-2

Solo puedes hacer esto temporalmente. Esto significa que cada vez que inicie sesión como ese usuario, debe ejecutar este comando:

export HOME=/var/www/html

De esta manera, puede hacer que la mayoría de las aplicaciones piensen que su directorio de inicio es cualquier ubicación que use arriba.

~también comenzará a señalar /var/www/html.

Las aplicaciones con las que funcionó para mí fueron NPM y Maven.

Hielo fundido
fuente