임시로 생성된 파일을 어떻게 캡처하나요?

임시로 생성된 파일을 어떻게 캡처하나요?

일부 쉘 스크립트를 생성한 다음 실행하고 삭제하는 프로그램이 있습니다. 이 스크립트를 생성한 프로그램을 해킹하지 않고 이 스크립트의 내용을 얻을 수 있는 기회가 있습니까?

답변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

관련 정보