Изменение домашнего каталога пользователя в подсистеме Windows для Linux

26

Я хотел бы изменить домашний каталог пользователя, который я изначально настроил в подсистеме Windows для Linux. Я нашел эту команду

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

Что должно позволять это, однако я получаю эту ошибку

usermod: user alex is currently used by process 2

Предположительно, потому что я вошел как этот пользователь. Я попытался получить root, выполнив sudo su -и снова выполнив команду, но у меня возникла та же проблема. Я попробовал команду, которую нашел в Google, чтобы выйти из системы от пользователя alexroot, но это также полностью вывело меня из bash.

Есть предположения?

Xeon06
источник
Не можете ли вы выйти из этой учетной записи, войти в качестве другой учетной записи, а затем запустить команды, чтобы увидеть, какой результат вы получите?
Сок Pimp IT
Выход из этой учетной записи закрывает Linux bash и возвращает вас к приглашению Windows. Вход в систему просто ставит вас по умолчанию для этого пользователя. И переключаясь на root через sudo su -я все равно получаю ошибку процесса
Xeon06
Я вижу, я предполагаю, что вы не можете войти в Windows как другая учетная запись, когда вышли из этой учетной записи, а затем запустить команду bash из этой учетной записи в bash для другой учетной записи? Я пока не настроил bash в Windows, так что просто думать о потенциальных простых решениях, хотя это и было бы неудобно, но если бы это была единовременная сделка, возможно, это сработало бы. Только быстрые мысли.
Сок Pimp IT
К сожалению, среда bash привязана к текущему пользователю Windows и хранится в% appdata%. Таким образом, другой пользователь получит свою собственную среду bash
Xeon06
Вы можете изменить имя пользователя по умолчанию, выполнив в Windows (не Bash) lxrun /setdefaultuser myusername.
harrymc

Ответы:

41

Изменение домашнего каталога с помощью WSL выполняется так же, как в Linux:

  1. Введите bash
  2. Введите команду sudo vim /etc/passwd
  3. Найдите строку своего аккаунта, которая может выглядеть следующим образом:
    harry:x:1000:1000:"",,,:/home/harry:/bin/bash
  4. Измените домашний каталог, который выше /home/harry, на новый каталог, используя запись WSL
  5. Сохранить файл
  6. Выйдите из Bash и перезапустите его.
  7. Чтобы проверить, используйте команды:
    cd ~
    pwd

Дайте мне знать, если вам нужна дополнительная информация.

harrymc
источник
Я не знаю WSL, мне просто любопытно: в общем, безопасно ли просто vim /etc/passwd? В Linux у нас vipwспециально для работы.
Камиль Мачоровски
@KamilMaciorowski: Я только начал с WSL, но я могу сказать, что sudo /usr/sbin/vipwэто точно так же, как мой пункт 2 выше. Изменения /etc/passwdтак же безопасны, как и в Linux. Может быть, безопаснее, потому что его уничтожение не влияет на вход в Windows.
harrymc
Спасибо! Я не знаю, почему единственный способ, которым я мог найти это, был через usermod.
Xeon06
4
Будьте осторожны с этим - если вы выйдете из основной файловой системы fake linux, вы обнаружите, что не можете правильно редактировать права доступа к файлам.
Хиппиим
@Hippyjim Я сталкиваюсь с той же проблемой и узнаю, что этот SO anwser может помочь (требуется Win 10 Insider Build 17063 и выше).
Выходные
1

Вы можете попробовать запустить lxrun /setdefaultuser rootв командной строке, затем изменить каталог, а затем изменить пользователя по умолчанию на Алекс.

Джошуа Меррилл
источник