WSL 上的 Ubuntu 開始預設為 root 用戶

WSL 上的 Ubuntu 開始預設為 root 用戶

昨天,一切都很好。今天下午,我從課堂上下載的一些文件導致我的筆記型電腦陷入困境後,我重新啟動了電腦。重新啟動並打開 Ubuntu 後,它預設為root@<mysystem>:~#.我可以su <username>,但它會預設該使用者到該/root目錄。即使在該用戶下,諸如explorer.execode .打開 VSCode 之類的命令也不起作用。

我在 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,請告訴我,以便我們在需要進一步排除故障時記住這一點。

相關內容