Modification du répertoire personnel de l'utilisateur sur le sous-système Windows pour Linux


26

Je voudrais changer le répertoire personnel de l'utilisateur que j'ai initialement configuré sur le sous-système Windows pour Linux. J'ai trouvé cette commande

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

Ce qui devrait permettre cela, mais je reçois cette erreur

usermod: user alex is currently used by process 2

Vraisemblablement parce que je suis connecté en tant qu'utilisateur. J'ai essayé d'aller à root 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 alexde root, mais cela m'a aussi complètement exclu de bash.

Des pensées?


Ne pouvez-vous pas vous déconnecter de ce compte, vous connecter en tant qu'autre compte, puis exécuter les commandes pour voir quel résultat vous obtenez?
Pimp Juice IT

La déconnexion de ce compte ferme Linux bash et vous ramène à l'invite Windows. La reconnexion vous met simplement par défaut dans cet utilisateur. Et en passant à root, sudo su -j'obtiens toujours l'erreur de processus
Xeon06

Je vois, je suppose que vous ne pouvez pas vous connecter à Windows sous un autre compte lorsque vous êtes déconnecté de celui-ci, puis exécuter la commande bash puis à partir de ce compte en bash pour l'autre compte? Je n'ai pas encore configuré bash dans Windows, donc penser à des solutions simples potentielles, même si le faire serait un peu gênant, mais si c'est juste une affaire ponctuelle, cela pourrait peut-être fonctionner. Pensées rapides seulement.
Pimp Juice IT

Malheureusement, l'environnement bash est lié à l'utilisateur actuel Windows, stocké dans% appdata%. Un autre utilisateur aura donc son propre environnement bash
Xeon06

Vous pouvez modifier le nom d'utilisateur par défaut en exécutant sous Windows (pas bash) lxrun /setdefaultuser myusername.
harrymc

Réponses:


41

La modification du répertoire personnel avec WSL se fait de la même manière que sous Linux:

  1. Entrez bash
  2. Tapez la commande sudo vim /etc/passwd
  3. Recherchez la ligne de votre compte, qui pourrait ressembler à:
    harry:x:1000:1000:"",,,:/home/harry:/bin/bash
  4. Modifiez le répertoire de base, qui est ci-dessus /home/harry, dans le nouveau répertoire, en utilisant la notation WSL
  5. Sauvegardez le fichier
  6. Quittez bash et relancez-le
  7. Pour tester, utilisez les commandes:
    cd ~
    pwd

Faites-moi savoir si vous avez besoin de plus d'informations.


Je ne connais pas le WSL, je suis juste curieux: en général est-il sûr de juste vim /etc/passwd? Sous Linux, nous avons vipwspécialement pour le travail.
Kamil Maciorowski

@KamilMaciorowski: Je viens de commencer avec WSL, mais je peux dire que cela sudo /usr/sbin/vipwfait exactement la même chose que mon point 2 ci-dessus. Changer /etc/passwdest aussi sûr que le faire sous Linux. Peut-être plus sûr car le détruire n'affecte pas l'ouverture de session Windows.
harrymc

Merci! Je ne sais pas pourquoi le seul moyen que j'ai pu trouver pour le modifier était usermod.
Xeon06

4
Soyez prudent avec cela - si vous quittez le principal faux système de fichiers Linux, vous constaterez que vous ne pouvez pas modifier correctement les autorisations de fichier.
Hippyjim

@Hippyjim Je suis confronté au même problème et je découvre que cette réponse SO pourrait aider (nécessite Win 10 Insider Build 17063 et supérieur).
Week

1

Vous pouvez essayer d'exécuter lxrun /setdefaultuser rootdans l'invite de commande, puis changez le répertoire, puis changez l'utilisateur par défaut en Alex.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.