Security

連結到 crontab 是不是很邪惡?

  • July 27, 2018

我考慮做類似的事情:

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 等)並使用它來跟踪您的更改。AMakefile可用於將更改安裝到相關係統目錄並重新啟動相關服務;在這種情況下,您只需鍵入即可sudo make install

引用自:https://unix.stackexchange.com/questions/253787