簡體   English   中英

強制 PHP CLI 將文件寫為 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM