Php

Apache sudoers 訪問

  • February 15, 2022

我正在從 php 進行系統呼叫,即

`sudo /usr/bin/perl -pi -e 's/foo/bar/g' /tmp/newxml.xml`;

這在 php cli 中執行良好。但不能通過瀏覽器在 php 中工作,因為 apache 沒有所需的執行權限。如何使 apache 成為 sudoer 以允許僅執行 /usr/bin/perl ?

我知道必須編輯 /etc/sudoers 才能做到這一點,但我不確定如何完成。任何指針?

我正在執行 RHEL 5.5

visudo

添加

nobody ALL=(ALL)NOPASSWD:/usr/bin/perl

用你的apache使用者替換nobody。

但你不應該那樣做。授予 apache sudo 對 perl 的訪問權限基本上可以讓任何人立即進入您的機器,從而破壞您的 php 應用程序。

您應該檢查 umask/tmp/newxml.xml並確保它可以被您的 apache 使用者寫入。

從安全的角度來看,我認為授予 apache 使用者 sudo 權限並不明智。您是否考慮過在組級別更改該文件的所有權,以便 apache 可以在不需要 sudo 的情況下對其進行寫入?

引用自:https://serverfault.com/questions/404105