0

SSH 経由で特定のコマンドを実行するプログラムがあります。コマンドの中には静的なもの (常に同じ) もあれば、実行ごとに変化する引数を持つものもあります。プログラムは秘密鍵を使用してサーバーに接続し、認証された鍵はロックされてコマンド「sh run_script.sh」を強制します。

run_script.sh は $SSH_ORIGINAL_COMMAND が一連の静的コマンドに一致する場合、または特定の方法で開始される場合 (非静的コマンドの場合) にのみ実行されます。

問題は、次のようなものです

allowedCommand arg1 arg2 && rm -r ~/ 

おそらくすり抜けるでしょう。

bash で最初のコマンドのみを実行し、パイプまたは && の後にあるものを無視することは可能ですか?

4

1 に答える 1

1

ラッパー スクリプトを (の代わりに/bin/bash)ログイン シェルとして設定し、sedまたは何かを使用して不要な部分を取り除くことができる場合があります。誤検知の可能性があり、空白を含む引数やその他の状況では失敗する可能性があります ( BashFAQ/050を参照)。

このアプローチによって、予期しないセキュリティの問題が発生する可能性があります。

sshsudo、 などの制限付きシェルが提供するセキュリティ機能rbashと、オペレーティング システムが提供するその他のセキュリティ機能を組み合わせて使用​​することをお勧めします。

于 2012-06-12T18:02:55.280 に答える