Tellur52の日記: bashの黒魔術~変数と関数とスコープと再帰
きっかけは例のbashの脆弱性の話の途中で出てきたコメント。
ここのコードを応用すると、
env echo='() { cat /etc/shadow; }' bash -c 'echo hoge'→おお、これは愉快、とか
env echo='() { echo muha; }' bash -c 'echo hoge'→Segmentation faultを発行するコマンドになりました:D=== とか
色々遊べるんだけど、我に返ると薄ら寒い事実に気がつくんですね。
自分が別のbashプロセスに渡した関数は、再帰するのかしないのか、shell変数の定義によって不確定性が生じる、のかしら。。。
いやこれはあまり追求したくないなあ、なんかスクリプトのメンテナンス性や堅牢性に重大な問題が起きているような気がするけど。