2011-12-13 13 views
2

私は、Webインターフェイス(Apache)を備えた組み込みLinuxシステムで作業しています。基本的には、Webインターフェイスにシャットダウン機能とリスタート機能を追加する必要があります。しかし、実行時に私は許可の問題に遭遇しています:phpからのシャットダウンapacheの許可

exec( "シャットダウン")など...ウェブページ(すなわちapache)を介して呼び出すとき。

どのようにこれらのコマンドをApacheから呼び出すことができますか?

私は、システムのセキュリティは大したことではないので、それが唯一の方法であれば、どうすればいいのですか?

のexec( "sudoを...

apacheのALL =(ALL)NOPASSWD:ALL

+2

sudoersにApacheユーザーを追加する:http://stackoverflow.com/questions/3173201/sudo-in-php-exec – malletjo

+1

Apacheのアクセス権を '/ dev/initctl'に与えることができます。もしそうなら、そのsudoを使用したり、rootにアクセスしたりすることなく、システムをシャットダウンしてシステムを再起動させることができます。しかしこれは純粋に推測です。 – qid

答えて

2

Apacheをsudoerにするのは危険な動きで、私はそれを避けます。私はQIDがこれに近いと思います...最も簡単な解決策は、rootの下で毎秒X秒実行するcronジョブを設定し、apacheが書き込めるディレクトリ内のファイルをチェックすることです。シャットダウンするときにapacheにそのファイルを追加させ、cronスクリプトには(a)ファイルを削除し、(b)マシンを再起動するトリガーが必要です。

ファイルを正しく削除し、テスト中にかなり長いcronの遅延を与えてしまったり、サーバーがただちにリブートしてしまい、それが混乱することに注意してください。

0

はあなたが何をしているか知っているsuerこと私は醜いハック解決策を提供することができます:ルートとして実行され、システムをシャットダウンするコマンドを受け入れる小さなデーモンを作成し、あなたのPHPスクリプトが合理的に確保されたチャネルを介してデーモンと通信するようにしてくださいシグナル、おそらくデーモンが見ているファイルに書き込めます、多分ネットワークソケットです)。

+0

sudoを使うのは良い考えですが、その場合はフルアクセス権を付与するのではなく、特定のコマンドだけにアクセスを制限することができます。 – qid

+0

ええ、すべて私に少し危険なようです。 –

1

これを行うための良い方法を知らないが、

関連する問題