web-dev-qa-db-ja.com

このエラーを解決する方法 `Sudo:/ usr / local / bin / Sudoはuid 0が所有し、setuidビットを設定する必要があります` ubuntuを再インストールせずに?

TLDR:私はi3でUbuntu 18.04を実行していますが、権限をめちゃくちゃにしました。 Sudoでコマンドを実行するたびに、このエラーメッセージSudo: /usr/local/bin/Sudo must be owned by uid 0 and have the setuid bit set。 Ubuntuを完全に再インストールする必要があるのか​​、それともそれほど簡単ではない方法で修正できるのかを考えています。

何が起こったか:nvmでnpmバージョンをアップグレードしようとしていて、nvmコマンドが認識されませんでした。私はこのstackoverflowの投稿の指示に従いました https://stackoverflow.com/questions/21215059/cant-use-nvm-from-root-or-Sudo nvmを介してアクティブにしていたノードのバージョンをにコピーしました/usr/local。以下を実行しました。 (はい、この一連のコマンドを実行する前に調査する必要があったことに気付きました。)

n=$(which node); \
n=${n%/bin/node}; \
chmod -R 755 $n/bin/*; \
Sudo cp -r $n/{bin,lib,share} /usr/local

次に、chmod: changing permissions of '/usr/bin/*': Operation not permitted

その後、私は走ったSudo nvm install-latest-npmと以前と同じエラーが発生しましたSudo: nvm: command not found

次に、Sudoで別のコマンドを実行しようとすると、エラーSudo: /usr/local/bin/Sudo must be owned by uid 0 and have the setuid bit set。 Sudoで何かを実行すると、このエラーが発生します。

この問題は、私がchmod -R 755 $n/bin/*; \ですが、エラーメッセージに/usr/binは変更されませんでした。
2部構成の質問があります:1)このエラーの原因は何ですか? chmod -Rコマンド? 2)ubuntuを完全に再インストールせずにこれを修正できますか?もしそうなら、どうですか?

コンテキストについては、私はすでにこれら2つの質問を読みました Sudo:/usr/lib/Sudo/sudoers.soはuid 0が所有している必要があります そしてこれ / usr/bin/Sudoはuid 0で、setuidビットが設定されている 。ただし、最初の質問の回答のアドバイスがこの状況に当てはまるかどうかはわかりません。受け取ったエラーメッセージは/usr/lib/Sudo/sudoers.so

読んでくれてありがとう!

2
ByteByByte

id 0が所有する必要がありますおよびsetuidビットを設定する

  1. 現在の所有者と権限をls -l /usr/bin/Sudoで確認してください。次のようになります。

    -rwsr-xr-x 1 root root 157192 2018-08-23 10:36:40 /usr/bin/Sudo

  2. ターミナルでpkexec bashを実行して、root権限を持つシェルを取得します。

  3. ファイルの所有権を修正します。

    chown root:root /usr/bin/Sudo
    
  4. Setuidビットを設定します。

    chmod u+s /usr/bin/Sudo
    
  5. Sudoを使用して、さらに修理を行うことができます。

1
xiota