如何允许多个用户访问 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

相关内容