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
。
読んでくれてありがとう!
id 0が所有する必要がありますおよびsetuidビットを設定する
現在の所有者と権限をls -l /usr/bin/Sudo
で確認してください。次のようになります。
-rwsr-xr-x 1 root root 157192 2018-08-23 10:36:40 /usr/bin/Sudo
ターミナルでpkexec bash
を実行して、root権限を持つシェルを取得します。
ファイルの所有権を修正します。
chown root:root /usr/bin/Sudo
Setuidビットを設定します。
chmod u+s /usr/bin/Sudo
Sudo
を使用して、さらに修理を行うことができます。