コマンドを含む多くのログがあります。「useradd」を含むすべてのログをフィルタリングしましたが、いくつかの誤検知を破棄したいと思います。
- ... /etc/default/useradd ...
- ... .../man8/useradd ...
問題は、偽陽性と実際のコマンドを含む行を見たいということです (テストケースを参照)。
ログアナライザープログラムを使用しているため、(1 つ以上の) Python 正規表現しか使用できません。したがって、実際の Python プログラムはありません。これらは私が試した表現です:
(!/etc/default/|/man8/)useradd # no match
(?<!/etc/default/|/man8/)useradd # look-behind requires fixed-width pattern
(?<!fault/|/man8/)useradd # works, but that's strange
他の質問への回答では、先読みを使用できるように正規表現が変更されましたが、ここでこれがどのように可能かわかりません。
[編集: いくつかのテストケースを追加]
## no match
cat /etc/default/useradd
less /usr/share/man/ja/man8/useradd.8.gz
## match:
useradd evil
/usr/sbin/useradd
cat /etc/default/useradd; useradd evil
cat /etc/default/useradd; /usr/sbin/useradd evil
cat /etc/default/useradd; cd /usr/lib/; ../sbin/useradd evil