質問: 0 そしてメッセージは消えた。しかし問題は、誰かがsudoをrootとしてスクリプトを実行しているときに、すべてのpamメッセージを抑制したことです。ユーザーzabbix(他のすべてのユーザーではない)に対してのみメッセージを停止します。 sudoは、zabbixユーザーがroot特権でスクリプトを実行したいことを知っており、pamにそれを伝える方法はありますか? sudoを使用するときに、特定のユーザーのログを記録しないようにpamに指示するにはどうすればよいですか?注:syslogのメッセージをフィルタリングしてみました。これは機能しますが、上記と同じ問題があります。つまり、どのユーザーがrootになっているのかをログメッセージが示していないため、無差別すぎます。
回答: かなり恐ろしいテストと調査の結果、debian stretch(raspberry)の実用的な解決策を見つけました。 opが求めることを達成する方法は確かに複数あります。しかし、pamのドキュメントは圧倒的であるため、ほとんどのものは実際にはtl; drです。 rsyslogのカスタム文字列フィルターを次のように追加できます:/etc/rsyslog.d/anyname.conf: :msg, contains, "session opened for user root by pi" stop /etc/pam.d/sudoを直接編集できます 次の場所にカスタムpam構成ファイルを作成することにより、正しい方法で行うことができます:/usr/share/pam-configs/ カスタムsudoersファイルを/etc/sudoers.d/020_piに作成することで、いくつかを実行できます。 (2)と(4)の方法を紹介します。 [〜#〜]警告[〜#〜] /etc/pam.d/内のファイルを編集する場合は、最初にファイルの書き込み権限を変更しないでください。そうしないと、間違えた場合、将来sudo/sを使用できなくなる可能性があります。したがって、元に戻す前に、新しい設定をテストしたことを確認してください。 (デフォルトは644) 「セッションのオープン/クローズ」を取り除くには:次の/var/log/auth.logスパムを削除したい:may 10 11:28:03 xxx sudo[26437]: pam_unix(sudo:session): session opened for user root by (uid=0) may 10 11:28:07 xxx sudo[26437]: pam_unix(sudo:session): session closed for user root これを行う:# sudo chmod 666 /etc/pam.d/sudo # sudo cat /etc/pam.d/sudo #%pam-1.0 @include common-auth @include common-account session [success=1 default=ignore] pam_succeed_if.so quiet_success uid = 0 ruser = pi @include common-session-noninteractive ここで非常に重要なのは、成功した場合、success=1は次の1句(またはpamの用語では「スタック内の次のモジュールにジャンプする」)をスキップすることです。man pam.confから: ignore-モジュールのスタックで使用した場合、モジュールの戻りステータスは、アプリケーションが取得する戻りコードには影響しません。 done-モジュールスタックを終了し、pamがすぐにアプリケーションに戻るという副作用のあるokと同等です。 [〜#〜] n [〜#〜]-スタック内の次のn個のモジュールを飛び越すという副作用があるokと同等です。 次に、再起動し、数時間実行して(たとえば、cronジョブを確認するため)、これが機能することをテストします。次に、ファイルのアクセス許可を元に戻します。そうしないと、システムに大きなセキュリティホールができます。 (sudo chmod 644 /etc/pam.d/sudo)繰り返される「tty pwd command」メッセージを取り除くには:次のようなメッセージも削除したいと思います。may 11 18:23:20 xxx sudo: pi : tty=unknown ; pwd=... ; user=root ; command=/usr/bin/arp-scan -q -l 私の場合、これは数分ごとにarp-scan実行されていたidsスクリプトによって生成されました。ログに表示されないようにするには、次のファイルを作成します。# sudo nano /etc/sudoers.d/020_pi # sudo cat /etc/sudoers.d/020_pi defaults:pi !logfile, !syslog pi xxx = (root) nopasswd: /usr/bin/arp-scan (ここでxxxはマシン名、piはユーザー名です。)