web-dev-qa-db-ja.com

Sudo権限のないSudoerのリストを表示する

  • 私がsudoerではない場合、sudoerのリストを表示することはできますか?
  • します/etc/groupこの情報を表示しますか?
5
boxofchalk1

自分が直接アクセスできない場合、Sudo権限に誰がアクセスできるかを見つけることはできません。 Unixグループ「ホイール」のメンバーである場合、どのユーザーかを確認することにより、「それに戻る」ことができます。

これは、ユーザー「saml」がwheelグループのメンバーであることを示しています。

$ getent group wheel
wheel:x:10:saml

「ホイール」グループのメンバーであることは、通常、システムsudoersファイル/etc/sudoersにあることが多いこのルールを通じて、完全なSudo権限を許可します。

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)   ALL

ただし、特定のシステムの管理者がSudo権限をこの方法で付与することを決定した保証はありません。同様に簡単にそれを行うことができました:

## Allow root to run any commands anywhere 
root    ALL=(ALL)   ALL
saml    ALL=(ALL)   ALL

この場合、Sudo権限がないと、システムの/etc/sudoersファイルにアクセスしてこのエントリを表示することはできません。

/ etc/groupsはどうですか

このファイルには、2番目、3番目などのグループが関連付けられているユーザーのみが表示されます。多くの場合、ユーザーアカウントには1つのグループのみが関連付けられています。その場合、特定のユーザーのプライマリグループを見つけるために、少し異なるコマンドを使用する必要があります。

$ getent passwd saml
saml:x:1000:1000:saml:/home/saml:/bin/bash

ここで、ユーザー「saml」はプライマリグループ1000を持っています。このGIDはこのグループに相当します。

$ getent group 1000
saml:x:1000:saml

しかし、これは実際にどのユーザーアカウントがSudo権限を持っているかについて何も教えてくれません。

なぜ大きな秘密なのか?

これは、いわゆる サイドチャネル攻撃 を防ぐために行われます。どのアカウントに特権があるかなどの情報が漏洩すると、特定のシステム上の任意のアカウントにアクセスできれば、攻撃者に重要な情報が漏えいしてしまいます。そのため、多くの場合、この情報を非特権アカウントからマスクすることが最善です。

8
slm