dhcpmanip.pl
次の行を含むPerlスクリプトがあります。
system "hostapd /etc/hostapd-1.0/hostapd/hostapd.conf"`
これは起動コマンドhostapd
で、次のエラーが発生します。
Insecure `$ENV{PATH}` while running setuid at `/var/www/cgi-bin/dhcpmanip.pl` line 46
オンラインで検索した後、www-dataユーザー(apacheユーザー)にroot権限を付与する必要があることに気づき、次の行を/etc/sudoers
挿入してファイルを変更しようとしました。
www-data ALL=NOPASSWD: /var/www/cgi-bin/dhcpmanip.pl
しかし、まだ動作しません。この問題を解決する方法を知っている人はいますか?
ベストアンサー1
Perlが実行されているため、このメッセージが表示されます。汚染パターン。明示的に設定するか(良い)、実行中のタスクが危険であるため、Perlはこれを有効にします(悪いですが、Perlはまだ良いタスクを実行します)。
PATH
いずれにせよ、Perlは外部コマンドを実行する前にコードをクリーンアップする必要があります。
外部コマンドを実行する前に、$ENV{PATH}
スクリプトのどこかに明示的に設定する必要があります。。
良い練習のためには明示的に使用する必要があります。フルパス実行中のすべての外部コマンド。