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
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:
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:
$HOME
pour changer le répertoire personnel de la session (à répéter sur toutes les sessions actives).Sudo vipw
pour modifier le répertoire personnel pour la prochaine sessionSachez également que vous pourriez avoir un problème avec les autorisations/propriété sur /var/www/html
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.
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.
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