PHPからsudoコマンドを実行する方法
作成日: ・ 更新日:
Raspberry Piの設定変更をWebブラウザ上から行うために、 PHPからsudoコマンドを実行したかったので、その設定を備忘録として残しておきます。
まずは、Apacheのユーザにパスワードを設定します。
私の環境では、「www-data」というユーザでしたので、以下のコマンドを入力してパスワードを設定します。
$ sudo passwd www-data
次に、Apacheユーザにsudoコマンド実行の権限を与えます。
$ sudo visudo
すると、編集画面が出てきますので、以下の行を追記してください。
apache ALL=(ALL) ALL
以上で、設定は終了です。
今度は、PHPからコマンドを実行する方法です。
PHPからは、以下のように実行します。
<?php
$results = shell_exec("echo 'パスワード' | sudo -S [実行したいコマンド]");
echo $results;
?>
汎用性を持たせるために、関数にします。
<?php
function sudo_shell_exec($command){
return shell_exec("echo 'パスワード' | sudo -S {$command}");
}
?>
これで、PHPからsudoコマンドを実行できるようになりました。