私はアーチLinuxを使用しています。これは主に商品をインストールし、セキュリティ監視コールの通知をyay
受け取るためのものです。sudo
厄介ですが、一般的な問題は、パッケージのインストール中にどこかで呼び出すyay
必要があることが多いが、sudo
一般的にいつであるかわからず、パスワードプロンプトがなければ、パッケージに対する多くのタスクを再実行する必要があることです。私は忘れてしまうので、5分ごとに確認することを期待しないでください。yay
必要に応じて通知を受け取り、sudo
パスワードを入力して続行できるようにしたいと思います。
また、明示的に直接実行する必要なしに呼び出されるたびに何が起こっているのかをsudo
よりよく確認できるように、呼び出しに関する通知を受けたいと思います。問題が発生した場合は、再追跡できるようにsudo
各項目をどこかに記録することをお勧めします。sudo
sudo
呼び出されるたびにスクリプトを実行する方法はありますか?
答え1
mesrが提案したPAM統合を考慮すると、私が見ることができる別のオプションは、一意の識別子を使用してsyslogを介してログするようにsudoを設定し、システムのrsyslog / syslog-ngにこれらのメッセージの外部プログラム/スクリプトを呼び出すようにするです。または、/ varの既存のログファイル以外のファイルにログインすることもできます。
例はありませんが、必要に応じて作成できます。
答え2
質問に文字通り答えるには:はい、次の方法があります。Sudoの(Sudoersより正確に言えば、プラグイン)はPAMと統合されます。電話回線を追加するだけですpam_exec.soin /etc/pam.d/sudo
、スクリプト目的に適したPAMスタック位置にあります。
しかし、より広い文脈で問題を見ると、スクリプトが必要ない場合があります。別のアプローチは次のとおりです。うん専用の非ログインsudoerで構成Sudoこのユーザーがパスワードなしでコマンドを実行できるようにします。これにより、ログの質問に対する回答も提供されるため、確認できます。Sudoユーザーログとフィルタうん。
警告する! ! !もしあなたの根アカウントが無効になっています。ビジュド編集するときは強くお勧めします。Sudo構成。
もしうんパッケージのインストール時に専用ユーザーを作成しませんでした。次のコマンドを使用して手動で生成できます。
# useradd --system --home /tmp --shell /bin/nologin yay
次の行/etc/sudoers
(またはそのいずれか/etc/sudoers.d/*
)を追加するとうんユーザーはパスワードなしですべてのコマンドを実行できます。
yay ALL=(ALL) NOPASSWD: ALL
要件を絞り込むことができればうん固定コマンドセットの場合、次の形式はパスワードなしでそのコマンドのみを受け入れます(リストが長い場合は、次のコマンドを使用してコマンドエイリアスを定義できます)。Cmnd_alias):
yay ALL=(ALL) NOPASSWD: /usr/bin/something, /sbin/another, ...
それから始めることができますうんこのように。最初はパスワードを一度入力する必要がありますが、うんに慣れる:
$ sudo -u yay yay