WSL 上的 Ubuntu 开始默认使用 root 用户

WSL 上的 Ubuntu 开始默认使用 root 用户

昨天一切正常。今天下午,我重启了电脑,因为课堂上的一些文件下载拖慢了我的笔记本电脑。重启并打开 Ubuntu 后,它默认为root@<mysystem>:~#。我可以su <username>,但它会将该用户默认为目录。即使在该用户下,像和打开 VSCode/root这样的命令也不起作用。explorer.execode .

我在 WSL 1 上运行 Ubuntu

答案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”方法设置用户的路径,但是当您在 WSL 上“正常”启动 Ubuntu 时,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,请告诉我,以便我们在需要进一步排除故障时记住这一点。

相关内容