如何在 Debian Linux v8.4 中允許多個使用者存取同一個 crontab?

如何在 Debian Linux v8.4 中允許多個使用者存取同一個 crontab?

我正在嘗試為一組使用者建立一個 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以下。

因此我會執行以下操作:

  1. 為您的使用者群組建立一個專用群組。我們假設它是“mycrontab”。

  2. 將您的三個用戶加入到該群組中。

  3. 在下方建立一個文件/etc/cron.d,並使其歸其所有root:mycrontab ,並將權限位元設為0660rw-rw-r--,即對使用者root和群組的讀取/寫入存取權限mycrontab以及對其他所有人的讀取存取權限。

  4. 教導您的使用者如何找到該文件以及其格式規則(這些規則可以以註釋的形式放置在文件中)。

請注意,您可能需要弄清楚如何處理向所有用戶發送郵件。我會檢查是否可以先將MAILTO所遵循的環境變數設定為cron以逗號分隔的電子郵件地址清單(例如),否則,您可能需要在本機 MTA 中設定郵件別名或接收您系統上產生的郵件的 MTA ,並使用該變數的別名值。[email protected],[email protected],[email protected]cronMAILTO

總而言之,請至少粗略地瀏覽手冊頁cron(8)和手冊頁。crontab(5)

....並且請從crontab群組中刪除您的用戶!

答案2

我不明白@kostix'解決方案如何不允許以root身分執行程式碼。

您基本上是向使用者授予 root crontab 存取權限。這是非常危險的。

就我個人而言,我會建立一個與使用者俱有相同權限的通用帳戶,並允許使用者 su - 該使用者並編輯其 crontab

相關內容