一時的に生成されたファイルをどのようにキャプチャしますか?

一時的に生成されたファイルをどのようにキャプチャしますか?

いくつかのシェルスクリプトを生成し、実行して削除するプログラムがあります。このスクリプトを生成したプログラムをハッキングせずにこのスクリプトの内容を取得する機会がありますか?

答え1

cat一時的に、スクリプトソルバーを画面上のスクリプトを調べたり、どこかに保存したりできる任意のプログラムに置き換えることができます。定義によると、インタプリタでスクリプトを非表示にする方法はありません。

extundelete問題のプログラムがスクリプトを秘密に保つように設計されていない場合は、使用しているファイルシステムに対して同様のツールを使用してディスク上のそのプログラムを見つけることができます。

答え2

私は次の重要な解決策を見つけました。

#!/bin/sh

file_path=$1/script-file-name

while inotifywait -e create "$1"; test ! -f "$file_path"
do
  :
done

chmod g+rw "$file_path"
chown root "$file_path"

このスクリプトは次の権限で実行する必要がありますroot

sudo <catch-script> /dir/where/the/target/will/be/generated

以前は、スクリプトが生成されるディレクトリを次のように変更する必要がありました。

chown root /dir/where/the/target/will/be/generated
chmod 1775 /dir/where/the/target/will/be/generated

つまり、スクリプトが配置されているディレクトリに固定ビットを設定します。その後、指定された(キャプチャ)スクリプトはターゲットスクリプトが生成されるのを待ち、それに対する書き込み権限を設定し(ジェネレータが使用できるように)、所有者を次に変更します(削除を無効にしrootます)。

答え3

すべてのファイルバージョンを保持するファイルシステムに一時ファイルをソートします。ファイルのコピー。使用例:

mkdir /tmp/backend /tmp/recorded
copyfs-mount /tmp/backend /tmp/recorded
TMPDIR=/tmp/recorded myprogram
ls /tmp/backend
cat /tmp/backend/metadata.
fusermount -u /tmp/recorded

関連情報