![](/img/trans.png)
[英]allow php files to write to locations other than those owned by www-data
[英]Force PHP CLI to write files as www-data
有沒有辦法讓 PHP CLI 調用的腳本將 fwrite() 作為 www-data?
目前,如果我創建一個文本文件並使用我自己的自定義腳本php writeToLogFile.php
寫入它,該文件將作為 root 創建,並且具有非常小的權限: rw- r-- r--
這意味着如果我想在 apache 中向這個文件寫入更多數據(作為 www-data 運行),我的權限會被拒絕。
這是更大系統的一部分,因此對我創建的每個文件 chmod() 或 chown() 來說都不切實際。 我也不想在 PHP 中設置 umask() 因為這可能會干擾其他線程。
我還應該提到該文件正在寫入另一台服務器上的 NFS 共享(所有服務器都是 Ubuntu)。 該文件夾共享為: /myfolder/logsfiles 01.02.03.04(rw,sync,no_subtree_check,no_root_squash)
先感謝您。
php
無法更改進程運行的用戶 ID,只有特權(例如 setuid)程序可以執行此操作。 您需要將腳本作為www-data
。
sudo -u www-data php writeToLogFile.php
執行sudo su www-data && php writeToLogFile.php
這將首先切換用戶,然后僅以www-data
用戶身份執行您的代碼...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.