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

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

Intenté el siguiente command:

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

Pero esto me da un error:

 usermod: user myUserName is currently logged in 

respuesta corta : no puedes.

larga respuesta :

HOME dir se establece en /etc/passwd , 6to campo. Se lee al iniciar session, su shell se inicia con este directory de inicio.

La forma correcta de cambiar el directory de inicio para joe es:

  • tener joe cerrar session.
  • use usermod -d /new/home joe para cambiar el directory de inicio para la session siguiente.

Una vez que se ejecuta la session, debe hacer dos cosas:

  • edite $HOME para cambiar el directory inicial de la session (se repetirá en todas las sesiones activas).
  • use sudo vipw para editar el directory de inicio para la siguiente wession

Además, tenga en count que puede tener un problema con los permissions / ownship en /var/www/html

El command usermod no funcionará si has iniciado session con el usuario sobre el que intentas realizar cambios.

Desde la página del manual en usermod dice:

CAVEATS usermod no le permitirá cambiar el nombre de un usuario que haya iniciado session. Debe asegurarse de que el usuario nombrado no esté ejecutando ningún process cuando este command se esté ejecutando si se está modificando el ID de usuario numérico del usuario. Debe cambiar el propietario de cualquier file crontab manualmente. Debe cambiar el propietario de cualquiera en trabajos manualmente. Debe realizar cualquier cambio que implique NIS en el server NIS.

Intente iniciar session con un usuario diferente y ejecute el command nuevamente.

Si eso no es posible, entonces puede editar manualmente el file / etc / passwd (que es en realidad lo que está haciendo el command usermod). Si lo hace, asegúrese de respaldar el file en caso de que haga algo tonto inadvertidamente.

Debe editar el /etc/passwd para cambiar el directory inicial de los usuarios que están actualmente conectados.

Edite /etc/passwd con sudo vipw y cambie el directory de inicio del usuario.

vipw muy recomendable, aparte de vim u otros editores, ya que vipw establecerá el locking para evitar daños en los datos.

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

Opción 1. Agregue HOME=/var/www/html a su .bashrc

Opción 2. Renombre /home/myusername y luego cree un enlace simbólico al directory deseado.

 mv /home/myusername /home/myusername-old ln -s /var/www/html /home/myusername 

Intenta de esta manera.

  1. Simplemente edite su propia línea en / etc / passwd /.
  2. Cambie el nombre de su directory en / home, dice de foo a bar.
  3. Vuelva a iniciar session nuevamente.

Si lo haces correctamente, no deberías enfrentar ningún error de autoridad.