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

Вопрос или проблема

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

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

Которая должна позволить это сделать, однако я получаю следующую ошибку

usermod: user alex is currently used by process 2

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

Какие-нибудь предложения?

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

  1. Введите bash
  2. Впишите команду sudo vim /etc/passwd
  3. Найдите строку вашей учетной записи, которая может выглядеть как:
    harry:x:1000:1000:"",,,:/home/harry:/bin/bash
  4. Измените домашний каталог, который выше указан как /home/harry, на новый каталог, используя нотацию WSL (Если вы хотите установить директорию Windows как домашнюю, вам нужно предварять ее /mnt/, например, /mnt/c для C:/, /mnt/d для D:/ и т.д.)
  5. Сохраните файл и выйдите из vim, напечатав :wq и нажав Enter
  6. Выйдите из bash и запустите его снова
  7. Для проверки используйте команды:
    cd ~
    pwd

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

На 2021 год есть лучший способ зайти в систему как root и изменить домашний каталог пользователя:

  • Нажмите Win + R
  • Введите cmd /C wsl -u root
  • Откроется терминал root, и теперь вы можете использовать команду usermod -d <path> <user> без проблем (например, usermod -d /mnt/c/Users/Alex alex)

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

Чтобы избежать отображаемой ошибки (“пользователь … в настоящее время используется процессом”): пользователь не должен быть войден в WSL VM.

  1. в VM: отредактируйте /etc/wsl.conf, чтобы изменить пользователя по умолчанию с “пользователя, который будет переименован” на root
  2. выйдите из VM
  3. завершите VM: wsl -t my_vm
  4. выполните команду: wsl -d my_vm -e usermod …добавьте_свои_аргументы_здесь…
  5. “откат” пункта #1 (с root на “новое имя пользователя”).

Когда используете ответ @harrymc вам нужно скопировать .bashrc в ваш новый домашний каталог.

cp <old_bashrc> ~

.

Ответ или решение

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

Теория

Windows Subsystem for Linux (WSL) предоставляет возможность запускать Linux-дистрибутивы непосредственно на Windows, что существенно облегчает работу разработчиков и позволяет использовать множество утилит Linux. Однако, при настройке WSL могут возникать сложности, такие как изменение домашнего каталога пользователя. Домашний каталог — это директория, в которой хранятся файлы и настройки пользовательского окружения. Иногда необходимо изменить его местоположение, чтобы, например, использовать каталог на разделах Windows или располагать данные в более удобном или безопасном месте. Поскольку WSL работает с дистрибутивом Linux, изменение домашнего каталога пользователя осуществляется аналогично изменению в любом Linux-системе.

Пример

В описанном сценарии пользователь сталкивается с ошибкой при попытке изменить домашний каталог с помощью команды:

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

Ошибочное сообщение:

usermod: user alex is currently used by process 2

Эта ошибка указывает на то, что пользователь "alex" в данный момент активно используется в рамках WSL-сессии. Это частая проблема, так как многие операции требуют, чтобы пользователь не был активен в системе при выполнении изменений, касающихся его учетной записи.

Применение

Для решения задачи рекомендуется следовать определенной последовательности действий:

  1. Запуск командной строки WSL с правами root:

    • Используя комбинацию клавиш Win + R, откройте окно выполнения и введите cmd /C wsl -u root. Это действие откроет терминал WSL с правами root, минуя авторизацию под пользователем alex, что помогает избежать ошибок, связанных с активными процессами.
  2. Изменение домашнего каталога:

    • В открывшемся окне терминала выполните команду usermod -d /mnt/c/Users/Alex alex. Эта команда изменяет домашний каталог пользователя "alex" на указанный путь в файловой системе Windows (в WSL-представлении).
  3. Обновление конфигурации WSL:

    • Выйдите из WSL, отредактировав файл /etc/wsl.conf, установите пользователя по умолчанию root. Для этого добавьте в файл следующие строки:
      [user]
      default=root
  4. Перезагрузка WSL:

    • Завершите все процессы WSL командой wsl -t <имя_вашего_дистрибутива>. Это действие полностью закроет все активные сессии и освободит ресурсы.
    • Снова запустите WSL, теперь уже с изменённой конфигурацией, что позволит применить изменения.
  5. Проверка изменений:

    • После повторного входа в WSL убедитесь, что изменение прошло успешно. Выполните команды cd ~ и pwd, чтобы удостовериться, что переход в домашний каталог осуществляется корректно к новому назначенному местоположению.
  6. Возвращение пользователя "alex" в качестве пользователя по умолчанию:

    • Верните изменения в файл /etc/wsl.conf, чтобы обратно установить пользователем по умолчанию "alex". Таким образом, при последующих запусках WSL сразу будет использоваться корректно настроенный пользователь.
  7. Копирование важных конфигурационных файлов:

    • Не забудьте скопировать все необходимые конфигурационные файлы из старого домашнего каталога в новый. Например, можно использовать команду:
      cp /home/harry/.bashrc ~
    • Это сохранит все пользовательские настройки оболочки, что важно для комфортного использования системы.

Применение данных шагов обеспечит успешное изменение домашнего каталога без привычных проблем, связанных с активными процессами. Пользователь сможет использовать измененный путь и извлекать преимущества интеграции WSL с файловой системой Windows.

Эти действия подчеркивают гибкость и функциональность WSL, позволяя пользователям Linux и Windows эффективно работать в смешанной среде.

Оцените материал
Добавить комментарий

Капча загружается...