他のユーザーが実行したクローンジョブの検出

他のユーザーが実行したクローンジョブの検出

私は現在経験していることです。星雲チャレンジ存在するUtilize-exercises.com課題の一つcronに依存するスクリプト。

crontab -u flag03このジョブは他のユーザー(flag03)によって実行されており、ログインしたユーザー(level03)にはジョブを表示するために実行する権限がありません。

プロンプトは、スクリプトがcronによって実行されることを明確に示します。また、これはディレクトリ内の唯一のスクリプトなので、さらに調査することもできます/home/flag03

しかし、これが現実の世界であれば、このスクリプトがcronによって実行されているという事実はわかりませんでした。

したがって、問題は、権限のないユーザーの観点からジョブが実行されているかどうかをどのように検出できるかということです。

私は以下を試しました:

while true; do ps au | grep <scriptname> | grep -v grep; done;

これにより、長い間実行されているプロセスを見ることができますが、すぐに終了するプロセスはほとんど見えません。また、私はスクリプトの名前を知っていると仮定します。

具体的な環境はUbuntuです。 apt-getは利用できませんが、gccにはアクセスできます。

どんなアイデアがありますか?

答え1

どのバージョンのUbuntuですか?を使用すると、開始されたすべてのプロセスが直系の子プロセスになるため、私が作成したcgroupをsystemd使用できます。cronsystemdcron

この情報を取得する1つのオプションはpsコマンドを使用することです。たとえば、次のようになります。

ps -eo user,pid,cmd,unit | grep cron.service | grep flag03

答え2

あなたはできません。最も近い方法は次のとおりです。

inotifywait -m /home/flag03/script

実行内容は表示されませんが、オープンscriptまたはアクセスされた時間は表示されます。

答え3

おそらく/ proc / [0-9] +ディレクトリでinotifywaitを使用すると、短期実行プロセスのより良いアイデアを得ることができます。

答え4

この特別なケースにはファイルがあり、/var/spool/cron/crontabs/flag03そのアカウントを使用してファイルを読み取ることができますnebula

ただし、level03アクセスする権限が不十分です。

関連情報