2014-10-07 115 views
0

我必須創建一個腳本,該腳本通過crontab運行。我已經在虛擬機中設置了一個新的Ubuntu並開始測試在UBUNTU 14上給PHP寫入權限,file_put_contents不起作用

所以我意識到當我在終端中運行腳本時,PHP不會在/ var/www/html /文件夾中寫入文件(帶有file_put_contents)(sudo php filename.php)

如果我從命令中刪除sudo,它說權限被拒絕。我也嘗試在../html/中創建一個不同的文件夾,並嘗試使用chmod 777.似乎沒有任何工作。幾年前我已經看到這個問題,但我找不到任何解決方案

您是否有任何人知道發生了什麼?

回答

0

檢查php可執行文件以查看setuid權限是否導致PHP放棄您使用sudo提供的超級用戶權限。

我知道你不是通過Web服務器運行它,但爲了其他人的利益,我發現使用提升的特權運行PHP太可怕了。如果我真的需要做一些危險的事情,我會盡可能將代碼隔離爲儘可能少的代碼,然後將其編碼爲帶有suid root的perl腳本。 (不,您無法在共享主機上執行此操作。)然後我從PHP彈出到perl。在這種情況下,perl會自動運行在污染模式下,迫使您在繼續之前清理所有輸入。 (這種技術是從大約2001年,有可能是現在一種更好的方式。)

...湯姆·羅賓遜

+0

我就用它來測試的腳本。它不是一個生產環境。我會試試看。我正在重新安裝一切 – 2014-10-07 05:52:07