web-dev-qa-db-ja.com

Sudoコマンドを実行できません

Sudoモードでコマンドを実行しようとするとエラーが発生します。

エラー:

Sudo: /usr/bin/Sudo must be owned by uid 0 and have the setuid bit set

Askubuntuでいくつかの質問を見つけ、回答を受け入れました。

しかし、それらのどれも私の問題を解決しませんでした。おそらく私の場合はそれらとは異なります。

詳細情報

この質問 の上位投票回答に続いてuTorrentをインストールしようとしました。
.tzファイルを/optに抽出した後、抽出したファイルの名前を変更しました。
その後、このエラーに直面しています。

システムを再インストールすることを提案しない答えを期待しています。
再インストールが唯一のソリューションである場合、これまでにインストールしたものすべてをバックアップする必要があります。

1
partho

pkexecも台無しにしない場合の簡単な修正:

問題は、/usr/bin/Sudoに間違った権限が設定されていることです(正しい-rwxrwxr-xではなく-rwsr-xr-x)。

これで、ファイルはルートが所有するため、そのアクセス権を変更するにはルートのアクセス権が必要です。通常、これにはSudoを使用しますが、破損しているため、それを修復するための代替としてpkexecを使用する必要があります。

pkexec chmod u+s,g-x /usr/bin/Sudo

これですべてが再び修正されるはずです。例えば確認する次のコマンド:

Sudo echo "Sudo works again! Yay! :D"

pkexecも台無しにした場合のより複雑な修正:

最初に、Ubuntuシステムを回復モードで起動する必要があります。

これを行うには、再起動し、GRUBメニューが表示されるのを待ちます。これは、BIOSが作業を終了した直後、Ubuntuのロードが開始される前に発生します。通常、別のOSとデュアルブートする場合に表示されますが、そうでない場合は、 Shift 表示させるキー。メニューポイントAdvanced optionsを選択し、接尾辞(recovery mode)が付いた最新のカーネルバージョンを選択します。別のメニューが表示されます。このメニューでは、rootを選択する必要があります。このメニューには、ルートアクセスのあるターミナルが表示されます。
復旧モードでルートシェルに入る方法の詳細については、 here を参照してください。手順1〜7を実行してから、ここに進んでください。

ルートシェルで次のコマンドを実行します。

mount -o remount,rw /
chmod u=rwxs,g=rx,o=rx /usr/bin/Sudo /usr/bin/pkexec
exit

その後、通常どおり再起動し、コマンドをテストします。

3
Byte Commander

最近同じ問題がありました。Sudopkexecを台無しにしました。

上記の@Byte Commander♦を試してみましたが、2つの特定のファイルのアクセス許可を変更しなかったので、私にとってはうまくいきませんでした。

最初のファイルはsudoersで、/etcにあります

  • cd /etc
  • chmod u=rwxs,g=rx,o=rx sudoers

2番目のファイルはREADMEで、/etc/sudoers.dにあります

  • cd /sudoers.d
  • chmod u=rwxs,g=rx,o=rx README

これらの変更を行った後、Sudo echo "Sudo works again! Yay! :D"が彼の不安に書いた@Byte Commander♦を試してみてください。

0
erald95