Security
連結到 crontab 是不是很邪惡?
我考慮做類似的事情:
sudo ln -s ~/myCustomCrontab /var/spool/cron/crontabs/username
因為我想在我的主目錄中擁有所有自定義文件。我能想到的可能風險是
- 安全性(權限應該如何仍然是安全的?)
- 系統錯誤
還是有更好的方法來“跟踪文件”?
這不起作用,至少在類似 Debian 的系統中(完全忽略(非系統)使用者的符號連結或硬連結 crontab 文件)。如果您使用
crontab
更改 crontab 文件,它也會失敗。如果 cron 版本仍然接受符號連結的 crontab 文件,它會產生可能的安全漏洞,因為不再檢查 crontab 文件的一致性。使用您的符號連結解決方案,
crontab -e
如果您(或某些安裝腳本)更改 crontab 文件,則會崩潰:crontab: crontabs/username: rename: Operation not permitted
因為它會移動一個臨時文件以
/var/spool/cron/crontabs/username
立即替換舊文件。crontab 內置了許多額外的安全檢查,因此無法使用 cron 系統來破壞系統。例如,它會在安裝或更改之前檢查 cron 文件的內容。無效的 cron 文件可能會使守護程序崩潰,
cron
或者可能(至少在理論上)濫用它來獲得系統上的更多權限。使用您的解決方案,不再檢查 crontab 文件。
不!
不要那樣做!!
務必將您(和其他人)的副本
crontab
儲存在您的主目錄等某個地方,但不要觸摸系統文件。vi my_crontab # Edit my copy of the crontab file crontab my_crontab # Install it
(就個人而言,我
$HOME/.crontab
用於我的每使用者副本。)跟踪系統文件的更好方法是創建一個原始碼儲存庫(git、cvs、mercury 等)並使用它來跟踪您的更改。A
Makefile
可用於將更改安裝到相關係統目錄並重新啟動相關服務;在這種情況下,您只需鍵入即可sudo make install
。