/etc/sudoers に `sudo -l` を追加せずに、パスワードなしの sudo 権限のリスト表示 (`sudo -l`) を有効にする方法を教えてください。

/etc/sudoers に `sudo -l` を追加せずに、パスワードなしの sudo 権限のリスト表示 (`sudo -l`) を有効にする方法を教えてください。

sudoすべてのユーザーがパスワードを入力せずに自分の権限を表示できるようにしたいです。

ALL ALL=(ALL) NOPASSWD: /usr/bin/sudo -lを追加せずにこれを許可する方法はありますか/etc/sudoers?

bob@cad50ee0931e:/$ sudo -l

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for bob:

答え1

sudoersファイル(man sudoers)のドキュメントには、次のような提案があります。

デフォルトでは、sudoコマンドを実行する前にユーザーが認証する必要があります。[...]NOPASSWDタグが適用されている場合どれでもsudo -l現在のホスト上のユーザーのエントリの 1 つ以上がパスワードなしで実行可能になります。この動作は [...]listpwオプションで上書きできます。

そして

listpwこのオプションは、ユーザーがオプションsudoを使用して実行するときにパスワードが要求されるタイミングを制御します-l。次の値が可能です。

  • allsudoers-現在のホストのすべてのユーザーのエントリにNOPASSWD、パスワードの入力を避けるためにフラグを設定する必要があります。
  • always- ユーザーは、このオプションを使用するために常にパスワードを入力する必要があります-l
  • any-パスワードを入力しないようにするには、sudoers現在のホストのユーザーエントリの少なくとも 1 つにフラグを設定する必要があります。NOPASSWD
  • never- ユーザーはこのオプションを使用するためにパスワードを入力する必要はありません-l

を回避したい場合はNOPASSWD、次のように設定しますlistpw=never

Defaults listpw=never

を使用してファイルvisudoを編集および確認しますsudoers(ヒント: vi`を編集するEDITOR=nano visudo場合は を使用します)。さらに良いのは、テスト中に別のルート シェルを開いたままにして、アクセスを失わないようにすることです。nanosudoers file instead of


残念ながら、バグsudo、これは1.8.28で修正されましたは、listpw=never設定を無視することができます。このシナリオでは、してはならないを使用しますlistpw=neverが、代わりに次のような意味のないエントリを作成します。

ALL ALL=(ALL) NOPASSWD: /bin/false

最終的な結果はsudo -lどのエントリーにもNOPASSWDルールに従えば要件は達成されます。

関連情報