Comment changer le répertoire d'accueil de l'utilisateur actuellement connecté

17

Je suis actuellement connecté à un serveur CentOS et je voudrais changer mon répertoire personnel de /home/myuserName/à/var/www/html/

J'ai essayé la commande ci-dessous:

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

Mais cela me donne une erreur:

usermod: user myUserName is currently logged in
Mohan
la source
2
Je ne sais pas ce que vous vouliez dire, HOME=/var/www/htmlchangera pour la session votre répertoire d'origine.
Archemar
Cela aide, mais je voudrais changer mon répertoire personnel de façon permanente, pas seulement pour la session en cours.
Mohan

Réponses:

17

réponse courte : vous ne pouvez pas.

réponse longue :

HOMEdir est défini dans le /etc/passwd6ème champ. Il est lu lors de la connexion, votre shell est démarré avec ce répertoire home.

La bonne façon de changer le répertoire personnel de joe est:

  • déconnecter Joe.
  • utilisez usermod -d /new/home joe pour changer le répertoire personnel pour la session suivante.

Une fois la session exécutée, vous devez faire deux choses:

  • modifier $HOMEpour changer le répertoire personnel de la session (à répéter sur toutes les sessions actives).
  • utiliser sudo vipwpour modifier le répertoire personnel pour la prochaine session

Sachez également que vous pourriez avoir un problème avec les autorisations / propriété sur /var/www/html

Archemar
la source
1
modifier / etc / passwd a toujours fonctionné pour moi. Voir @ 7171u ci
jeffmcneill
éditer / etc / passwd sans se déconnecter / se connecter?
Archemar
éditez / etc / passwd pour un compte qui est connecté, puis démarrez une nouvelle session avec ce même compte, et il obéit au nouveau répertoire personnel. Pour le compte déjà connecté, cette session a toujours l'ancien emplacement d'origine dans l'environnement.
jeffmcneill
8

La commande usermod ne fonctionnera pas si vous êtes connecté avec l'utilisateur sur lequel vous essayez d'apporter des modifications.

À partir de la page de manuel sur usermod, il est dit:

CAVEATS usermod ne vous permettra pas de modifier le nom d'un utilisateur connecté. Vous devez vous assurer que l'utilisateur nommé n'exécute aucun processus lorsque cette commande est exécutée si l'ID utilisateur numérique de l'utilisateur est modifié. Vous devez changer le propriétaire de tous les fichiers crontab manuellement. Vous devez changer le propriétaire de n'importe quel travail manuellement. Vous devez apporter toutes les modifications impliquant NIS sur le serveur NIS.

Essayez de vous connecter avec un autre utilisateur et de réexécuter la commande.

Si ce n'est pas possible, vous pouvez éditer manuellement le fichier / etc / passwd (qui est en fait ce que fait la commande usermod). Si vous faites cela, assurez-vous de sauvegarder le fichier au cas où vous feriez par inadvertance quelque chose de stupide.

MattM
la source
7

Vous devez modifier le /etc/passwdfichier pour changer le répertoire personnel des utilisateurs actuellement connectés.

Modifiez le répertoire personnel /etc/passwdwith sudo vipwet changez de l'utilisateur.

vipwfortement recommandé autre que vimou d'autres éditeurs car vipwdéfinira le verrouillage pour éviter toute corruption de données.

7171u
la source
2

Quelques solutions de contournement possibles, selon ce que vous espérez résoudre:

Option 1. Ajoutez HOME=/var/www/htmlà votre .bashrc

Option 2. Renommez /home/myusername, puis créez un lien symbolique vers le répertoire souhaité.

mv /home/myusername /home/myusername-old
ln -s /var/www/html /home/myusername
Dax Kerchner
la source
mauvaise habitude. après cela, myusername-old ne peut plus être utilisé par un autre utilisateur
GeoMint
-2

Vous ne pouvez le faire que temporairement. Cela signifie que chaque fois que vous vous connectez en tant qu'utilisateur, vous devez exécuter cette commande:

export HOME=/var/www/html

De cette façon, vous pouvez faire croire à la plupart des applications que votre répertoire personnel correspond à l'emplacement que vous utilisez ci-dessus.

~va également commencer à pointer vers /var/www/html.

Les applications avec lesquelles cela a fonctionné pour moi étaient NPM et Maven.

Glace fondue
la source