chmod -R 777 /usr/bin
と入力しましたが、Sudoは動作していません。
Sudo must be setuid root
と表示されます。
オンラインでchown root:root /usr/bin/Sudo chmod 4755 /usr/bin/Sudo
を実行するようにアドバイスされています。
chown root:root /usr/bin/Sudo
と入力すると、opened in readonly mode
エラーが表示されます。
受け入れられたステータスにもかかわらず、私は今確信していますこの答えは間違っています。 (アクセプトについてOPと相談した後、すぐに改善したいと思っています。)他の人はこれがうまくいったと言ったことを思い出すと思いますが、彼らの問題は少なくともわずかに異なっていたと思います。ここで説明する方法は、
chmod -R 777 /usr/bin
が中断されるいくつかの状況で価値があります Ctrl+C または、完了しません。しかし、いったんそれが行われると、pkexec
もSETUIDされず、DAMIEN ROCHEとOLIが正しくコメントしたように、Sudo
よりもうまく動作しません。
Ubuntuデスクトップシステムに PolicyKit がインストールされているため、pkexec
を使用して、破損したSudo
実行可能ファイルまたはsudoers
ファイルを修復できます。リカバリモードで起動する必要はなく、ライブCDから起動する必要もありません。再起動する必要さえありません。
この場合、次のコマンドを実行します。
pkexec chown root:root /usr/bin/Sudo
pkexec chmod 4755 /usr/bin/Sudo
詳細については、 この質問 を参照してください。
ライブCD /ペンドライブから実行する場合でも、chmod
コマンドの前にSudo
を付ける必要があります。したがって、手順は次のようになります。
Sudo chmod 0755 <path>
を使用して権限を調整しますディスクがマウントされている場所を特定する方法:ターミナルウィンドウから、mount
(引数なし)を実行します。これにより、マウントされているすべてのデバイスがリストされます。リストされているtype
を確認します-「実際のファイルシステム」を使用していないものはすべてスキップできます(おそらくディスクはext3またはext4を使用しています-proc、sysfsなどをスキップできます)。何かが有望と思われる場合(/dev/sda1 on /media/sda1 type ext3
のように見える)、ls /media/sda1
を使用してその内容を確認し、それが正しいかどうかを確認します。
マウントされていない場合は、/dev
エントリを使用して、ディスクがある場所を確認できます(ls /dev/ |grep '/dev/sd
を使用して使用可能なデバイスを確認します。ディスクは/dev/sdaX
、/dev/sdbX
など-Xが数字の場合)。これをマウントされたデバイスのリストと比較します。存在しない場合は、マウントしてその内容を確認してください(上記を参照)。マウントするには、まずマウントポイントを作成します。 Sudo mkdir /mnt/mydisk
を使用してから、mount /dev/sda1 /mnt/mydisk
を使用してデバイスをマウントし、ls /mnt/mydisk
を使用してその内容を確認してください。
正しいディスクを取得したら、Sudo chmod 0755 /mnt/mydisk/usr
のように、usrディレクトリのパーミッションを変更します。
-R
パラメーターを使用して、最初にchmod
コマンドを再帰的に実行した場合、依然として問題が発生する可能性があります。その場合は、各エントリを手動で修正しようとするか、直接インストールしてください...
私はあまり知識がありません。しかし、これらの手順は、マシンを再起動しなくても問題を解決しました。次の手順を実行します:
su root
<enter root password>
cd /usr
chmod -R 755 *
ローカルスクリプトのアクセス許可を設定しようとして、誤ってSudoアクセス許可を破棄し、所有権を変更しました。次の操作を行うことで、Sudoの所有権をルートに戻すことができました。
ステップ1:ubuntuリカバリモードに切り替えます。プロセスに気付いていない場合は、こちらで回答を参照できます。 https://askubuntu.com/a/172346/223901
ステップ2:リカバリモードになったら、root-ドロップしてルートシェルプロンプトにドロップします
ステップ3:次のコマンドを実行します
mount -o remount,rw /
chown root:root /usr/bin/Sudo
chmod 4755 /usr/bin/Sudo
reboot
システムがブートするのを待って正常にすると、Sudoの所有権がルートに戻ります。
Matは正しいと思います。/usr/binにビットを追加するにはrootでなければなりませんが、もちろんSudoは壊れています。ルートパスワードを持っている場合は、それを使用してルートとしてログオンし、上記のコマンドで権限を修正できます。ただし、そうしない場合(そして私もしません)、おそらく次のことが最善です。
ルートは常にユーザー番号0であるため、どのシステムのルートでも、他のファイルシステムのルートに許可された変更を加えることができます。