Ubuntu
cron 作業應該以哪個使用者身份執行?
帶有使用者的 Ubuntu 伺服器
root www-data mywebsite1 mywebsite2
該伺服器上託管了多個網站,每個網站都有自己的使用者。
每個網站都有自己的 cron 作業,主要是備份文件和發送電子郵件。
我應該使用通用使用者(如 www-data 或 root)執行所有 cron 作業嗎?
或者我應該作為每個站點的特定使用者執行這些作業,因為每個 cron 作業都特定於單個站點?
通常,執行“備份文件”和“發送電子郵件”之類的 cron 作業需要在他們正在操作其文件的使用者的上下文中執行此操作。這可確保他們具有讀取和寫入文件的權限,並且可以將所採取的操作審核為與該使用者相對應。
因此,您將希望以他們所代表的使用者身份執行 cron 作業。
這取決於cronjon的類型。
範例 1:
wget http://domain.com/cron.php
在這種情況下,執行使用者無關緊要。
範例 2:
/usr/bin/php /var/www/domain.com/cron.php
在這種情況下,我將使用執行虛擬主機的同一使用者執行(如果每個虛擬主機都有自己的使用者)。因為腳本可能會創建文件/文件夾或嘗試編寫它們,並且您不希望 root 擁有的文件/文件夾 undex domain.com。
第三種情況:PHP 作為 mod_php 或沒有 suexec 的 CGI 腳本執行(通常在這種情況下,ftp 使用者與執行腳本的使用者不同)。在這種情況下,腳本可以作為 ftp 使用者或網路伺服器的使用者 - www-data 執行。依靠。