실행 중인 Python 스크립트가 다른 프로세스(또는 우주선 또는 예상치 못한 개발자 업데이트)에 의해 실수로 수정되지 않았는지 확인하고 싶습니다. 스크립트의 체크섬(예: )을 쓰기 금지된 파일에 저장된 알려진 값과 비교한다고 들었지만 md5sum
사용 중인 파일의 체크섬을 얻는 방법은 잘 모르겠습니다. 실행 중인 스크립트의 메모리가 실제 소스 파일인가요? 아니면 다른 곳에서 뭔가가 실행되고 있습니까?
지금까지 시도한 내용은 다음과 같습니다. 결과가 효과가 있을지 모르겠습니다.
1. 체크섬이 포함된 쓰기 금지된 파일을 생성합니다.
cd ~/Developer/MyProj
# Compute the md5 hash and store it in a new file
md5sum /home/username/Developer/MyProj/myscript.py > checksum
# Remove the write permissions for all (user, group, and other)
chmod a-w checksum
# Inspect the permissions to validate
ls -al checksum
2. cronjob을 추가하여 스크립트의 무결성을 주기적으로(예: 매시간) 확인하세요.
sudo crontab -e
0 * * * * /bin/sh /home/username/Developer/MyProj/healthcheck.sh
존재하다 healthcheck.sh
:
#!/bin/bash
s1=$(md5sum /home/username/Developer/MyProj/myscript.py)
s2=$(cat /home/username/Developer/MyProj/checksum)
if [ "$s1"="$s2" ]
then
echo "Script is what we think it is"
else
echo "Script was modified!"
fi