週に1日はSudoersですか?

週に1日はSudoersですか?

私の上司は、本番Redhatサーバーのシステム管理者としてリソースしました。rm -f *しばらく前に同様の事故が発生しないようにセキュリティを強化してほしいと頼んだ。

現在、53人のユーザーがシステムにsudo作業をしていますが、これは感謝の悪夢です。特定の曜日にのみユーザーのアクセスを許可することが可能かどうか疑問に思います。

たとえば、ユーザー「Joe」は火曜日と木曜日にのみログインし、「Jane」は日曜日にのみログインできますか?etc/sudoersこれを許可するようにカスタマイズできますか?

sudoerを使用するよりも良い方法はありますか?

答え1

sudoLinuxシステムの他のすべてと同様に、PAMを介して認証します。

したがって、を使用してこれを実行できる必要がありますpam_time.so

このモジュールは、少なくとも Debian ではデフォルトで有効になっていません。次の行を追加する必要があります。

account    requisite  pam_time.so

/etc/pam.d/sudosudo のみを有効にするか/etc/pam.d/common-account(pam-auth-update ブロック以降)、システム上のすべてのプログラムを有効にします。

次に編集/etc/security/time.confして制限を設定します。たとえば、金曜日の午後3時から5時の間にのみsudoフレッドを許可するには、サービス名が必要です。sudo

sudo;*;fred;Fr1500-1700

(注:まだテストしていません。)

編集する:明らかに、rootであまりにも多くのコマンドを実行する人が多すぎると思うので、実際にこの問題を解決する必要があるという他の答えとさまざまなコメントに同意します。もちろん、ルートになることができれば、pam設定を編集できます。

答え2

53人のユーザーが日常業務を行うためになぜsudoが必要なのか疑問です。ほとんどのユーザー(開発者を含む)にとって、sudoは誰かがランダムなコマンドを実行するルーチンではなくまれな例外である必要がありますsudo rm -rf *

グループ権限(またはACL)を使用して、人々に作業を実行するために必要なファイルへのアクセス権を付与できますか? setuid、sudoスクリプト、またはバイナリを使用してサービスの再起動などの操作を実行できますか? (セキュリティsetuid / sudoスクリプトを書くのは難しいので、正直な人を正直に保つことがより重要です。)

人が sudo にアクセスする権限を週に 1 日に制限できるとしても、まだ 1 週間に sudo にアクセスできる人は 53 人なので、これは重要な問題を解決するのには役に立ちません。

それでは、多くのユーザーが本番サーバーにアクセスする必要があるかどうか疑問に思います。必要なログやデータ/ファイルを非プロダクションシステムに送信できますか?

答え3

最も簡単な方法は、sudoers.dディレクトリ(includedir経由)を使用して設定することです。その後、cronタスクを使用して、必要に応じてユーザー固有のルールをそのディレクトリに配置できます。

#includedir ディレクティブを /etc/sudoers で使用して、sudoers ルールをルールの一部として配置できる sudoers.d ディレクトリを作成できます。たとえば、次のようになります。

#includedir /etc/sudoers.d

sudoは、パッケージマネージャまたはエディタの一時/バックアップファイルに問題が発生するのを防ぐために、「〜」で終わるか、「.」を含むファイル名文字をスキップして/etc/sudoers.dのすべてのファイルを読み取ります。ファイルは語彙順に解析されます。つまり、/etc/sudoers.d/01_first は /etc/sudoers.d/10_second より先に解決されます。ソートは数値ではなく語彙なので、/etc/sudoers.d/1_whoopsは/etc/sudoers.d/10_secondの後にロードされます。ファイル名の前にゼロを一貫して使用すると、これらの問題を回避できます。

#include を介して含まれるファイルとは異なり、visudo は構文エラーがない限り #includedir ディレクトリ内のファイルを編集しません。 -fフラグでvisudoを実行してファイルを直接編集できます。

/etc/sudoers.d/joe は joe にアクセス権を付与したい場合に表示され、ファイルを削除するだけでアクセス権を削除できます。

答え4

crontabを追加してユーザーをsudoグループに配置し、2番目のcrontabを追加してユーザーを削除できます。

関連情報