web-dev-qa-db-ja.com

UbuntuでSudoを取り戻すには?

私はこれを行いました:

Sudo chown -R myname /usr/

そして今、このエラーのためにSudoコマンドを使用できません:

Sudo:setuid rootである必要があります

そして私が読んだように、これはこのファイルの所有者/usr/bin/Sudoがルートではないことを意味します。 /usrフォルダの所有者がいるため、今は私のユーザーです。

多くのフォーラムやブログでは、ルートとしてこれを行うことを推奨しています。

# chown root:root /usr/bin/Sudo
# chmod 4111 /usr/bin/Sudo

...しかし、これの問題は、rootとしてログインする必要があることですが、ターミナルでsuを書き込んだ場合、パスワードが間違っているため、実際にはできません(実際には、追加したパスワードを使用します)私のユーザーへ):

$ su
Password:
su: Authentication failure

では、Sudoコマンドを取り戻すことはできますか?

編集:私のUbuntuは私のMac OS XのParalellsの下にあります。

12
Adam

すべてのファイルの正しい所有権を確認するためのガイドとして使用できる同様のシステムがある場合は、レスキューモードで起動し、ルートシェルにドロップして、すべてのファイルに正しい所有権を手動で復元できます。 /usr内のファイル。

最も簡単な方法は、OSを再インストールするか、バックアップから復元することです。

Ubuntuなどでは、デフォルトでrootパスワードはありません(アカウントは無効になっている)ため、suを実行できません。

5
psusi

ルートレベルのアクセス権を付与する唯一のものにアクセス許可をホースしているので、これを修正するには、現在のソフトウェア環境の外部からの支援が必要になります。

最も簡単な方法は、ディストリビューション用のLiveCDを起動し、ドライブをマウントし、そこからリストしたchmodを使用してファイルのアクセス許可を変更することです。

ルートシェルを取得するために、シングルユーザーモードでの起動を試すこともできます。

通常、/usr/ディレクトリはrootが所有している必要があるため、再帰的にchownを実行して、破損したものを修正できます。 (編集: @Gillesのコメントごとにchownが実行されているように見えるため、setuidビットとsetgidビットが壊れているため、必要になります所有権を再度修正したら、既存のシステムと手動で比較してすべてを復元します。)

ただし、非常に[〜#〜] few [〜#〜]4111。その余分なものは特別な権限ですが、ユーザーとして実行した場合でもrootとして実行されます! Sudoといくつかのコマンドのみがこの許可ビットを設定する必要があります。 最初にchmodを実行しなかった場合は、おそらくこれをまったく修正する必要はありません、すべての権限はすでに正しいです。すべての権限がどうあるべきかを知らないまま、大きなchmod操作を実行しないでください。

11
Caleb

Ubuntuリカバリモードで、次のコマンドを入力します。これで問題が解決しました。

mount -o remount,rw /
mount --all
chown root:root /usr/bin/Sudo
chmod 4755 /usr/bin/Sudo
restart

これがあなたの問題を解決することを願っています。(または誰か他の人の)

これをここ のブログ投稿 で見つけました。

4
Ubuntu-user

これは、他の回答で提案されているよりもはるかに簡単です。フォーマット、再起動、またはライブCDを使用する必要はありません。

su root # then enter your password to switch to root user
chown root:root /usr/bin/Sudo && chmod 4755 /usr/bin/Sudo
exit # to get back to the original user

これは、この問題を修正する最も簡単な方法です。説明、Sudoが破損している(破損は間違った用語であることはわかっていますが、機能していないため、Sudoの使用を避ける必要があります)

  • コマンド1 (su root)を使用して、Sudoを使用せずにユーザーをrootに変更します。
  • コマンド2 (chown root:root/usr/bin/Sudo && chmod 4755/usr/bin/Sudo)を使用して、Sudoの権限/所有権を修正します。
  • コマンド3 (exit)を使用して、元のユーザーに戻ります。

私はこの方法をLinuxミントでテストしました。これはUbuntuのようなシステムです。この方法は他のOSでは機能しないことを教えてください。それに応じて回答を更新します。

ありがとう

2
divyenduz

これは、人々が作っているよりも簡単です。以下を試してください:

  1. 壊れたsuコマンドを使用してrootとしてログインする代わりに、現在のユーザーとしてログアウトし、通常のDisplay Manager(つまり、ログイン画面)からrootとして再度ログインします。
  2. 端末で以下を実行します:chown root:root /usr/bin/Sudo && chmod 4755 /usr/bin/Sudo

これでSudoコマンドが修正され、すぐに再び稼働できるようになります。

1
user7089

SuまたはSudoなしでrootとしてログインするには、pkexecを使用できます。

pkexec su

次に、ファイルの権限を変更します。

chmod 440 /etc/sudoers
chmod 775 /etc/sudoers.d
chmod 440 /etc/sudoers.d/README
0