我正在嘗試為一組使用者建立一個 crontab,我們將該群組稱為「testGroup」。有 3 個用戶,我想讓他們都訪問同一個 crontab。我做了一些研究,並嘗試將每個單獨的使用者新增至 /etc/group 檔案中的 crontab 群組。但這並不起作用,因為每個用戶仍然有 3 個單獨的 crontab。這可以修復嗎?如果是這樣,我將如何去做這件事。
謝謝
答案1
背景
不,cron
它並不像您想像的那樣工作。
守護cron
程式從兩個地方讀取其 crontab:
- 全系統
/etc/crontab
; - 每用戶 crontab。
沒有每組使用者的 crontab 概念。
解決方案
Debian 已經進行了定制cron
,可以相對輕鬆地完成您需要的操作。引用cron(8)
手冊頁:
此外,在 Debian 中,
cron
讀取目錄中的檔案/etc/cron.d
。 cron/etc/cron.d
以與文件相同的方式對待文件/etc/crontab
(它們遵循該文件的特殊格式,即它們包含使用者欄位)。但是,它們獨立於/etc/crontab
:例如,它們不會從中繼承環境變數設定。此更改特定於 Debian,請參閱下面的註釋特定於 Debian以下。
因此我會執行以下操作:
為您的使用者群組建立一個專用群組。我們假設它是“mycrontab”。
將您的三個用戶加入到該群組中。
在下方建立一個文件
/etc/cron.d
,並使其歸其所有root:mycrontab
,並將權限位元設為0660
或rw-rw-r--
,即對使用者root
和群組的讀取/寫入存取權限mycrontab
以及對其他所有人的讀取存取權限。教導您的使用者如何找到該文件以及其格式規則(這些規則可以以註釋的形式放置在文件中)。
請注意,您可能需要弄清楚如何處理向所有用戶發送郵件。我會檢查是否可以先將MAILTO
所遵循的環境變數設定為cron
以逗號分隔的電子郵件地址清單(例如),否則,您可能需要在本機 MTA 中設定郵件別名或接收您系統上產生的郵件的 MTA ,並使用該變數的別名值。[email protected],[email protected],[email protected]
cron
MAILTO
總而言之,請至少粗略地瀏覽手冊頁cron(8)
和手冊頁。crontab(5)
....並且請從crontab
群組中刪除您的用戶!
答案2
我不明白@kostix'解決方案如何不允許以root身分執行程式碼。
您基本上是向使用者授予 root crontab 存取權限。這是非常危險的。
就我個人而言,我會建立一個與使用者俱有相同權限的通用帳戶,並允許使用者 su - 該使用者並編輯其 crontab