実行前のコマンドバイナリの確認

実行前のコマンドバイナリの確認

Bashスクリプトが実際に実行されていることを確認する方法はありますか?

tarBashスクリプトが複数のコマンド(たとえば、、、、、、mailなどscp)を呼び出してこれが実際であることmysqldumpを確認したい場合は、ファイルと親ディレクトリの所有者であり、唯一のコマンドであるユーザーがこれを行うことができます。一部の所有者または所有者ではなく、識別できる書き込み権限を持つユーザー。tartarroot/tmp/surprise/tarwww-dataapache2

もちろん、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それを信頼できるかどうかはどうすればわかりますかlsmd5sumなどの他のソリューションにも同じ主張が適用されますstrace

システムの完全性について高いレベルの信頼が必要な場合は、特別なソリューションを使用できます。使用される。ただし、これはスクリプトで使用できるものではありません。システム全体は、不変ファイルの概念を使用して特別な方法で設定する必要があります。

おすすめ記事