誤って次のコマンドを実行しました
Sudo chown [username] -hR /
今Sudo su
エラーを取得しています:
Sudo: /usr/bin/Sudo must be owned by uid 0 and have the setuid bit set
これを解決する方法は?
データをバックアップして再インストールします。
これはおそらく極端に見えますが、これはSudo
だけではありません。 ファイルシステム全体のパーミッション構造を破壊しました。他のいくつかの答えはSudo
動作しますが、問題全体を無視すると、後の災害。
別のインストールから所有者をミラーリングすることもできますが、実際にインストールしたものに大きく依存する場合(/var/
など)があります。問題の規模を把握したい場合は、 以前にこの種の問題を誰かが解決するのを手伝ったことがあります 。修正は手作業で行われ、長いため、システムが安全でなくなったり壊れたりする可能性があります。
その混乱を選択することは、クリーンインストールよりもかなり時間がかかります。
ここには、状況の深刻さを理解していない人々からのドライブバイがいくつかありました。彼らにとって、それは不必要な仕事の大きな山のように見えます。不正な配管工やメカニックが、より大きな仕事のためにあなたを揺さぶると言うようなことです。
/usr/bin/Sudo
のアクセス許可のみを変更した場合は、必ず修正してください。 しかし、この質問はシステム全体の変更に関するものです。すべてのファイル(ランタイムのみのファイルを保存)は、ユーザーが所有しています。ユーザーが実行するすべてのもの(ブラウザー、ブラウザーエクスプロイトなど)は、システムファイルを上書きし、あなたをスパイし、データを抽出する可能性があります。これを修正する必要があります。上記ごとに、これは難しいです。最も簡単な方法は再インストールです。
だから、これについて怠けないでください。ファイルシステムの許可は、あなたを安全に保ち、修正するのに役立ちます。
SOのこの答え を読むとわかるように、この問題はnot人々が作っているほど難しくありません。次の簡単な手順に従って、再インストールせずにSudo
コマンドが再び機能するようになりました。
chown root:root /usr/bin/Sudo && chmod 4755 /usr/bin/Sudo
を実行しますこれはトリックを行い、他の回答で推奨されている「核オプション」よりもはるかに迅速で痛みが少ないです。
ルートパスワードが設定されていない場合は、 回復モード で起動して設定できます。
押し続けると回復モードになります Esc システムの起動中。
復旧モードに入った後に表示される長いリストでルートオプションを選択します(実際にはルートシェルです)
type command-mount -o remount /
(またはリカバリでは、grubオプションをクリックできます。これは、ファイルシステムの読み取り/書き込み権限を取得するのに役立ちました。これは、コマンドが実行されなかったため、ファイルシステムの読み取り/書き込みモードを基本的に更新しました最初は私のために働いています)
読み取りおよび書き込みモードでファイルシステムを再マウントします。
コマンド-chown -R root:root /usr
このコマンドは、所有権を「ユーザー」からルートに再度再帰的に変更します
今でもSudo
コマンドに問題があるので、ステップ1、2、3を繰り返してchmod 4755 /usr/bin/Sudo
を実行しました
今、私は本当に再インストールは本当に「核オプション」だったと思う
Digital Oceanのドロップレットにも同じ問題がありました。
Sudo: /usr/bin/Sudo
はuid 0
が所有し、setuid
ビットが設定されている必要があります。以下は、実行して再起動するコマンドです。
chown -R root:root /usr/bin/Sudo
chmod -R a=rx,u+ws /usr/bin/Sudo
chown -R root:root /usr/lib/Sudo/sudoer.so
chmod -R a=rx,u+ws /usr/lib/Sudo/sudoer.so
それが役に立てば幸い。
残念ながら、完全バックアップがない場合は、おそらくこの時点でできることは再インストールすることです。
システムのセキュリティパラダイムを完全に台無しにして、すべてのファイルの所有権を同じユーザーに変更したことを考慮してください。
このサイトを検索すると、たとえば chmod -R a-wrx/commandから回復するにはどうすればよいですか?
上記の方法は、「rootとしてログインし直す」ことができなかったため(パスワードは不明)、機能しませんでしたが、編集してルートシェルを取得しました。
vi /etc/lightdm/lightdm.conf
autologin-user=root
greeter-show-manual-login=true
再起動後、私は最終的に実行することができました
chown root:root /usr/bin/Sudo && chmod 4755 /usr/bin/Sudo
実行中のシステムでlightdm.conf
ファイルを編集できませんでした。私はこのようなものを修正しました:
/etc/lightdm/lightdm.conf
にアクセスするためにルートパーティションをマウントしますSudo -H gedit /mnt/etc/lightdm/lightdm.conf
および Anno2001's answer から次の行を追加します
autologin-user=root
greeter-show-manual-login=true
リブート
コマンドを実行します:
chown root:root /usr/bin/Sudo && chmod 4755 /usr/bin/Sudo
/etc/lightdm/lightdm.conf
のデフォルトユーザーに戻す