WSL上のUbuntuはデフォルトでルートユーザーを使用するようになりました

WSL上のUbuntuはデフォルトでルートユーザーを使用するようになりました

昨日はすべて順調でした。今日の午後、授業でいくつかのファイルをダウンロードしたせいでノートパソコンが重くなったため、コンピューターを再起動しましたroot@<mysystem>:~#。再起動して Ubuntu を開くと、デフォルトで になりました。 できますsu <username>が、そのユーザーは ディレクトリにデフォルト設定されます。そのユーザーでも、VSCode を開くための やなど/rootのコマンドは機能しません。explorer.execode .

私はWSL 1でUbuntuを実行しています

答え1

WSLをCドライブからDドライブに移動した後、同じ問題に直面しました。これは、次の方法で簡単に解決できました。

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

お役に立てれば。

答え2

私が考えられるトラブルシューティング手順(これが起こった場合に試す手順)は次のとおりです。

  • 通常のユーザーの/home/<username>ディレクトリはまだ存在していますか?

  • もしそうなら、ルート ユーザーとして見ると、その中のすべてが「正常」に見えますか? とりわけ、その中のファイルは通常のユーザーによって所有されていますか、それともルートによって所有されていますか? それらがルートによって所有されている場合、それは私たちがさらに取り組む必要がある問題である可能性があります。

  • 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とは異なるファイルシステムを使用しており、少し「脆弱」です。再起動が必要になったときにファイルのダウンロードに問題があったと述べています。UbuntuC:\Users\<youruser>\AppData\Local\Packages\...にファイルを取り込むためにファイルを直接ダウンロードしようとしていた可能性はありますか?もしそうなら、ホームディレクトリが破損している可能性があります\\wsl.localhost\Ubuntuまたはを使用した場合、\\wsl$\Ubuntu問題は発生しないはずです。

    ただし、上記の診断のすべてで本当に失敗しない限り、その結論に飛びついて「回復」を開始したいかどうかはわかりません。ただし、AppDataWSL1 にアクセスするためにパスを使用した可能性がある場合はお知らせください。さらにトラブルシューティングを行う必要がある場合にそれを念頭に置くことができます。

関連情報