web-dev-qa-db-fra.com

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

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
17
Mohan

réponse courte: vous ne pouvez pas.

réponse longue:

HOME dir est défini dans /etc/passwd, 6ème champ. Il est lu lors de la connexion, votre Shell est démarré avec ce répertoire personnel.

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

  • déconnecter Joe.
  • utilisation 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:

  • éditer $HOME pour changer le répertoire personnel de la session (à répéter sur toutes les sessions actives).
  • utilisation Sudo vipw pour 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

17
Archemar

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 cela 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.

8
MattM

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

Modifiez le /etc/passwd avec Sudo vipw et changez le répertoire personnel de l'utilisateur.

vipw fortement recommandé autre que vim ou d'autres éditeurs puisque vipw mettra le verrou pour empêcher toute corruption de données.

7
7171u

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

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

Option 2. Renommer /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
2
Dax Kerchner