Php
Apache sudoers 訪問
我正在從 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 的情況下對其進行寫入?