Ubuntu на WSL начал по умолчанию использовать пользователя root

Ubuntu на WSL начал по умолчанию использовать пользователя root

Вчера все было хорошо. Сегодня днем ​​я перезагрузил компьютер после того, как загрузка файлов с моего класса затормозила мой ноутбук. После перезапуска и открытия Ubuntu по умолчанию был установлен root@<mysystem>:~#. Я могу su <username>, но затем он устанавливает этого пользователя по умолчанию в /rootкаталог. Даже под этим пользователем команды вроде explorer.exeи code .для открытия VSCode не работают.

Я использую Ubuntu на WSL 1

решение1

Я столкнулся с той же проблемой после того, как перенес WSL с диска C на диск D. Это было легко исправлено с помощью -

ubuntu config --default-user <your-username>

Надеюсь это поможет.

решение2

Действия по устранению неполадок, которые я могу придумать (и которые я бы попробовал, если бы это произошло):

  • Ваш обычный каталог пользователя /home/<username>все еще существует?

  • Если да, то выглядит ли все "нормально" внутри него, если смотреть с точки зрения пользователя root? Среди прочего, файлы внутри него принадлежат вашему обычному пользователю или пользователю root? Если они принадлежат пользователю root, то это может быть проблемой, над которой нам нужно будет поработать дальше.

  • Запустите Ubuntu с помощью:

    wsl ~ -u <Ubuntu_username> -e bash --noprofile --norc
    

    Если в результате вы войдете в систему как этот пользователь (ваша подсказка будет другой), то, скорее всего, в вашем файле что-то не так ~/.bashrc(хотя это может быть другой файл).

  • Если указанная выше команда не работает, добавьте любые сообщения об ошибках или результаты в ваш вопрос в редактировании. Затем проверьте, существует ли пользователь в файле /etc/passwd.

  • Примечание: Причина, по которой это explorer.exeне работает, скорее всего в том, что su <username>путь пользователя задается через методы "Linux", но когда вы запускаете Ubuntu на WSL "нормально", WSL добавляет путь Windows к пути Linux. После использования su <user>попробуйте запустить /mnt/c/WINDOWS/explorer.exe- я ожидаю, что это сработает, но подтвердите результаты (в любом случае) в комментарии или (предпочтительно) в редактировании вашего вопроса.

  • Вы упоминаете в комментариях WSL1, которая использует другую файловую систему, чем WSL2, и она немного более «хрупкая». Вы упоминаете, что у вас была проблема с загрузкой файлов, когда вам пришлось перезапуститься. Есть ли вероятность, что вы пытались загрузить файлы напрямую, C:\Users\<youruser>\AppData\Local\Packages\...чтобы загрузить их в Ubuntu? Если так, товозможно, был поврежден домашний каталог. Если вы использовали \\wsl.localhost\Ubuntuили \\wsl$\Ubuntu, то это не должно быть проблемой.

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

Связанный контент