Linuxコマンドが打てないレンタルサーバーでコマンドを打つ方法
格安のレンタルサーバーや共用サーバーなどでは、障害や各種設定のためにLinuxコマンドを打ちたくても打てない環境であることが多いと思います。
そこで今回はPHPファイルを使って、コマンドが打てるようになる技を紹介します。 ただし!悪用されるとサーバー上のファイルを削除できたりする危険な技なので、IPアドレス制限やベーシック認証等を行って、必ず安全なアクセス環境を作ってからPHPファイルを設置してくださいね。
PHPのshell_exec() 関数を使う
PHPには、サーバー上でコマンドを実行させるための関数がいくつかありますが、その中でもshell_exec() 関数が返り値を受け取りやすくオススメです。
そこで、URLのGETクエリにコマンド文字列を入力し、そのデータをshell_exec() に渡すことで命令を実行することができます。 ただし、先程も書いたように誰にでもアクセスできるようにしてしまうと大変危険な関数なので、今回はIPアドレスで制限してみましょう。
<?php if ($_SERVER['REMOTE_ADDR'] == 'IPアドレス') { print("<pre>"); print(shell_exec($_GET['cmd'])); print("</pre>"); } ?>
これを「任意のファイル名.php」というフォーマットで保存し、FTPでアップロードします。
そして、このアドレスに対して クエリーをつけてブラウザでアクセスします。 今回は文字の出力だけを行う「echo」コマンドを使ってみましょう。
http://example.com/info.php?cmd=echo あいう
すると、ブラウザに「あいう」と出力されます。 もちろん、他のコマンドも実行可能ですよ。
危険だからといって便利なものを使わないのは勿体無いので、時と場合によって利用を検討してみてください。 ただ、使い終わったら必ずPHPをサーバーから削除しておくようにしましょうね!
2011-04-27