こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

phpでsudoコマンドの実行

ブラウザからAndroidアプリのプロジェクト作成を可能にしようとしています。

Linux端末もしくわターミナルのroot権限で
「android create project --target ○ --name △ --path /var/../../.. --activity △ --package ■〇△」←「..や〇、△等は適当です(笑)」
というコマンドを実行するとプロジェクトが作成されます。端末、ターミナルでのこのコマンド実行には成功しています。

上記のコマンドをブラウザで実行させようと、まず一般ユーザモードでsudoコマンドでの実行を試みました。
「sudo /home/../../android create project --target ○ --name △ --path /var/../../.. --activity △ --package ■〇△」
というコマンドを実行するとsudoコマンドでもプロジェクトが作成されます。端末、ターミナル内でのこのコマンド実行も成功しています。

次にブラウザからの実行ですが、
ブラウザからphpのsystem関数を用いてsudoコマンドを使ったコマンド実行を試みているのですが、できません。
自分なりに調べて、sudoコマンドに必要なパスを入力不要にし、サイトに書いてあったので、viコマンドで、sudoure内の「Defaults requiretty」に#も追加しました。

ブラウザでphpのsystem関数を用いて上記コマンドの実行は不可能なのでしょうか?

投稿日時 - 2013-01-11 15:09:46

QNo.7886407

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

まずはsudoをフルパスで指定するところから。

それとhttpdはapacheでしょうか?
もし実行ユーザーがapacheならvisudoしてユーザーapacheにNOPASSWDで実行できる
権限をつける必要があるかもしれません。

ただしapacheの乗っ取りのがあった場合を想定して、利用可能コマンドは
ある程度しぼる必要はあると思います。

投稿日時 - 2013-01-11 16:29:59

お礼

回答ありがとうございます。

httpdはapacheです。
visudoしてapacheにNOPASSWDで実行できるようには以前からしていました。

ターミナルでは実行できているのですが、ブラウザからsystem関数を用いるとできません...
phpの権限やapacheでの他の権限などなんですかね。未だにできません。

投稿日時 - 2013-01-15 19:14:24

あなたにオススメの質問