web-dev-qa-db-ja.com

Sudoersブラックリスト

Linuxでは、sudoersファイルに数人のユーザーを追加する必要があります。彼らは以下を除いて、ルート缶に何でもできるはずです:

  • 変更、読み取り、削除しないでください/nfsshare/config
  • 変更、読み取り、削除しないでください/etc/passwd
  • 何もマウントしないでください
  • ルートパスワードを変更しないでください
  • 編集しないでください/etc/sudoersまたはvisudoを実行して他のユーザーを追加します

これは可能ですか?

7
sagar

私は基本的に、これについてWissam Al-Roujoulahと同意しています。

Sudoersファイルに数人のユーザーを追加する必要があります

本当にこれを行う必要がありますか? aclまたは通常のUNIX権限を使用する他の方法があるかもしれません。

Wissam Al-Roujoulahがすでに指摘しているように、特定のコマンドを「ブラックリストに登録」しようとすることは、実際には非常に悪い考えです(下のman sudoersから、強調記事):

ただし、組み込みの
 ALLエイリアスと組み合わせて「!」を使用することに注意してください。 ユーザーが「少数を除くすべて」のコマンドを実行できるようにするために、
が意図したとおりに機能しない

代わりに、「ホワイトリスト」を指定できます。ユーザーが実際に実行するコマンドが許可されている。このようなもの:

user1 ALL=/sbin/shutdown

上記により、user1をシャットダウンできます。カンマ区切りのリストにコマンドを追加できます。

これについてもっと読む ここ

23
maulinglawns

それはほとんど不可能だと思います。ユーザーがエディターを使用できないようにする必要があるためです。たとえ別のエディターをインストールしたり、バイナリを他の場所に移動して使用したりできるので、ユーザーはそれを妨げることはありません。

重要な点は、ユーザーをsudoersに追加して、一部を除いてすべての権限を与えることはできません。

あなたは反対の方法でそれをしなければなりません。

12

su/Sudoアクセスはオプトインではなくオプトアウトです。ルートシェルを取得できると、配置した他の保護を回避できます。実行する必要がある特定のものがあり、sudoersファイルの管理が複雑すぎる場合(これはおそらく一般的に採用するのに最適なアプローチです)、それを起動する小さな単一目的のバイナリを作成してから設定することを検討してください代わりにそれらのsetuidフラグ。

3
fluffy

SELinuxの使用を見ましたか?どのディストリビューションを使用していますか?

新しいSELinuxユーザーを作成し、必要な特権(ロールへのアクセス)のみを与えることができる場合があります。 Ttはオプトインになるため、ユーザーが実行する必要のあるすべてのものをリストする必要があります。

0
Bigon