www-dataのroot権限によると

www-dataのroot権限によると

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}スクリプトのどこかに明示的に設定する必要があります。

良い練習のためには明示的に使用する必要があります。フルパス実行中のすべての外部コマンド。

おすすめ記事