Bashスクリプトが実際に実行されていることを確認する方法はありますか?
tar
Bashスクリプトが複数のコマンド(たとえば、、、、、、mail
などscp
)を呼び出してこれが実際であることmysqldump
を確認したい場合は、ファイルと親ディレクトリの所有者であり、唯一のコマンドであるユーザーがこれを行うことができます。一部の所有者または所有者ではなく、識別できる書き込み権限を持つユーザー。tar
tar
root
/tmp/surprise/tar
www-data
apache2
もちろん、PATH
環境は理解してこれが大丈夫かどうか疑問です。また確認しました実行中のbashスクリプトでは、どうすれば正確になりますか?
例:(医師コード)
tarfile=$(which tar)
isroot=$(ls -l "$tarfile") | grep "root root"
#and so on...
ベストアンサー1
どのバイナリを実行するかを確認する代わりに、最初から正しいバイナリを実行できます。たとえば、実行されていないことを確認するには、スクリプトで実行します/tmp/surprise/tar
。/usr/bin/tar
または、$PATH
ジョブを実行する前に合理的な値に設定してください。
システムディレクトリおよび他のシステムディレクトリにあるファイルを信頼しないと、/usr/bin/
信頼を回復できません。あなたの例では、所有者を確認するために使用していますが、ls
それを信頼できるかどうかはどうすればわかりますかls
?md5sum
などの他のソリューションにも同じ主張が適用されますstrace
。
システムの完全性について高いレベルの信頼が必要な場合は、特別なソリューションを使用できます。私使用される。ただし、これはスクリプトで使用できるものではありません。システム全体は、不変ファイルの概念を使用して特別な方法で設定する必要があります。