bashスクリプトから実際に実行していることを確認する方法はありますか?
(例えば:あなたのbashスクリプトは、いくつかのコマンドを呼び出していると言うtar
、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...
which
何をtar
するかを正しく言わないことに加えて、ls
ハッキングされてファイルに関する偽の情報があればそれを返す可能性があります。またgrep
、ハッキングされて誤った情報を返す可能性があります。代わりにシェルマッチングを使用することで回避できますが、シェルがハッキングされる可能性があります。type
そもそも、シェルはハッキングされて間違った結果をもたらす可能性があります。または、シェルの交換可能性は50年前のOSと比較してUnixの重要な革新であったため、完全に置き換えられました。ケントンプソンの1984年のチューリングアドレスを参照してください。それはずっとカメです。
TE
)と呼ばれるコンポーネントを持つAIXのみ- 署名付きのデータベース(つまり、MD5チェックサムよりも広範囲です。TEがアクティブで、ファイルがデータベースにある場合は選択可能)プログラムが実行されるかどうか、またはデータベースと一致しないことを警告するだけですさらに、2つの設定があります:(TEP
信頼された実行PATH)とTLP
(信頼されたLIBrary PATH)。TEPのプログラムのみが実行され、ライブラリはディレクトリは、TLPに含まれているでLinuxの私はあなたを助けるかもしれない「AppArmorの」と呼ばれるものがある。。