sudo は WSL で動作する Kali では動作しません。

sudo は WSL で動作する Kali では動作しません。

WSL 2がインストールされており、Kali(以前のバージョン1.0)を使用しています。どちらのバージョンにも問題があります。 sudo は使用できません。一度実行すると、次のような結果が得られます。

Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts

あなたが想像できるように、UNIXがWindowsで正常に動作することを期待することはできませんが...

では、どこから始めるべきですか?ログ、小切手?

答え1

コメントで述べたように、sudoパスワードは(少なくともKaliでは)ユーザーパスワードと同じでなければなりません。

WSLでは、インストール後にKaliを初めて実行すると、デフォルトのユーザーと関連するパスワードが生成されます。ルートパスワードがありません。

もちろん、WSLでは「ログイン」がないため、ユーザーパスワードは通常使用されません。通常必要な唯一の時間はですsudo

しかし、忘れた場合は、WSLから回復するのは非常に簡単です。 Kaliではなく、PowerShellまたはCMDで次のことを行います。

wsl -u root passwd <username>

これは、このオプションを使用してすべてのユーザー名でWSLを実行できることを利用します-u。ほとんどのWSL操作と同様に、WSLはユーザー権限に制限されているため、パスワードは必要ありません。Windowsとにかくユーザー。

それでも実行できない場合は、sudoシステムに問題がある可能性がありますsudoers。他のすべての方法が失敗した場合は、既存のエントリを削除して再/etc/sudoersインストールしてみてください。

これを試す前に、イメージのフルバックアップを作成することをお勧めします。したがって、ここに最初の行として含めます。今回もPowerShellまたはCMDを介してこれを行う必要があります。

wsl --export kali-linux snapshot.tar
wsl -u root rm /etc/sudoers
wsl -u root apt install --reinstall -o Dpkg::Options::="--force-confask,confnew,confmiss" sudo

答え2

これは、Cライブラリlibcryptが欠落しているためです。同じ問題が発生しましたが、回避策は次のとおりです。

  1. cmdからrootとしてログイン
wsl -u root
  1. libcryptの依存関係であるlibc6が構成されていない問題を解決しました。
dpkg --configure libc6
  1. aptも破損しているので、aptの外部からlibcrypt1をダウンロードしてください。
wget http://http.kali.org/kali/pool/main/libx/libxcrypt/libcrypt1_4.4.33-2_amd64.deb -O libcrypt1_4.4.33-2_amd64.deb

またはDebianで同じ問題が発生した場合は、そのバージョンのlibcrypt1を使用してください。

wget http://ftp.uk.debian.org/debian/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_amd64.deb -O libcrypt1_4.4.18-4_amd64.deb
  1. 今ダウンロードしたlibcをインストールしてください。
dpkg -i libcrypt1_4.4.*_amd64.deb
  1. 他の破損したパッケージの依存関係があることを確認してください。その場合、適切なアップグレードを試みた後に問題が発生します。
apt update
apt upgrade
  1. パッケージの依存関係を変更し(前のステップが失敗した場合は必要)、アップグレードを再度実行するとパスされます。
apt --fix-broken install
apt upgrade

答え3

PowerShellで次のように入力します。

wsl --unregister <distro>

その後、新しく再インストールします。

関連情報