質問: 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関数を用いて上記コマンドの実行は不可能なのでしょうか?
回答: まずはsudoをフルパスで指定するところから。 それとhttpdはapacheでしょうか? もし実行ユーザーがapacheならvisudoしてユーザーapacheにnopasswdで実行できる 権限をつける必要があるかもしれません。 ただしapacheの乗っ取りのがあった場合を想定して、利用可能コマンドは ある程度しぼる必要はあると思います。