45 votes

Modification du répertoire personnel d'un utilisateur sous Windows Subsystem for Linux

J'aimerais modifier le répertoire personnel de l'utilisateur que j'ai initialement configuré sur Windows Subsystem for Linux. J'ai trouvé cette commande

sudo usermod -d /mnt/c/Users/Alex alex

Cela devrait être possible, mais j'obtiens l'erreur suivante

usermod: user alex is currently used by process 2

Sans doute parce que je suis connecté en tant qu'utilisateur. J'ai essayé d'aller à la racine en faisant sudo su - puis en exécutant à nouveau la commande, mais j'obtiens le même problème. J'ai essayé une commande que j'ai trouvée sur Google pour déconnecter l'utilisateur alex à partir de root, mais cela m'a aussi fait sortir complètement de bash.

Qu'en pensez-vous ?

60voto

harrymc Points 394411

Le changement de répertoire personnel avec le WSL se fait de la même manière qu'avec Linux :

  1. Entrer dans bash
  2. Tapez la commande sudo vim /etc/passwd
  3. Recherchez la ligne de votre compte, qui pourrait ressembler à ceci :
    harry:x:1000:1000:"",,,:/home/harry:/bin/bash
  4. Modifier le répertoire personnel, qui est ci-dessus /home/harry vers le nouveau répertoire, en utilisant la notation WSL (si vous voulez définir le répertoire Windows comme répertoire personnel, vous devez le faire précéder de la mention /mnt/ comme /mnt/c pour C:/, /mnt/d pour D:/, etc)
  5. Enregistrez le fichier et quittez vim en tapant :wq et appuyez sur Enter
  6. Quitter bash et le relancer
  7. Pour tester, utilisez les commandes suivantes :
    cd ~
    pwd

N'hésitez pas à me contacter si vous avez besoin de plus d'informations.

3voto

OddMorning Points 131

Comme en 2021, il existe une meilleure façon de se connecter en tant que root et de changer le répertoire personnel de l'utilisateur :

  • Presse Win + R
  • Eingabe cmd /C wsl -u root
  • Un terminal root s'ouvre et vous pouvez maintenant utiliser la commande usermod -d <path> <user> sans problème (par exemple usermod -d /mnt/c/Users/Alex alex )

0voto

Imran Points 1762

Vous pouvez essayer de lancer lxrun /setdefaultuser root dans l'invite de commande, puis changer le répertoire, et enfin changer l'utilisateur par défaut en Alex.

0voto

user1456813 Points 1

Pour éviter l'erreur affichée ("user ... is currently used by process") : l'utilisateur ne doit pas être connecté à wsl VM.

  1. dans VM : éditer /etc/wsl.conf pour changer l'utilisateur par défaut de "l'utilisateur à renommer" à root
  2. quitter la VM
  3. Terminer la VM : wsl -t my_vm
  4. exécuter la commande : wsl -d my_vm -e usermod ...add_your_args_here...
  5. "rollback" de #1 (de root à "nouveau nom d'utilisateur").

0voto

Optimus Alex Points 13

Lors de l'utilisation de la réponse par @harrymc vous devez copier .bashrc dans votre nouveau répertoire personnel.

cp <old_bashrc> ~

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X