2019年5月6日月曜日

PHPでroot権限でコマンドを実行させる

nmapを実行して結果を表示するページを作成中です。nmapはお馴染みのコマンドですが、実はroot権限でないと動作しません。
PHPで開発するとapaheユーザ権限でコマンドを実行するため、そのままだと実行できないわけです。

ということで、sudoを利用します。
visudoを利用してsudoの設定を編集します。

以下を追加。
apache ALL=(root) NOPASSWD: ALL
参考にさせて頂きました。
Apache ユーザに別のユーザとして処理を実行させる 明滅するプログラマの思索

期待通り、sudoを利用してroot権限でコマンドが実行できます。
でも、何でもかんでも実行できるのも怖いなーということで、やはりnmapだけ実行できるように修正します。
apache ALL=(root) NOPASSWD:/usr/bin/nmap
参考にさせて頂きました。
PHPにて、root権限でコマンド実行 みズとおかズ

取り敢えず、これで大丈夫でそうです。

0 件のコメント:

コメントを投稿