実行中の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を追加して、スクリプトの整合性を定期的に(例:1時間ごとに)確認します。
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