
Я пытаюсь создать crontab для группы пользователей, назовем группу "testGroup". Есть 3 пользователя, и я хочу предоставить им всем доступ к одному и тому же crontab. Я провел небольшое исследование и попытался добавить каждого отдельного пользователя в группу crontab в файле /etc/group. Однако это не сработало, так как для каждого пользователя по-прежнему есть 3 отдельных crontab. Можно ли это исправить? Если да, то как мне это сделать.
Спасибо
решение1
Фон
Нет, cron
это не работает так, как вы предполагаете.
Демон cron
считывает свои файлы crontab из двух мест:
- В масштабах всей системы
/etc/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
переменную окружения subscribed в виде cron
списка адресов электронной почты, разделенных запятыми (например, ), или, если это не удастся, вам, вероятно, придется настроить почтовый псевдоним либо в вашем локальном MTA, либо в MTA, получающем почту, сгенерированную в вашей системе, и использовать значение этого псевдонима для переменной.[email protected],[email protected],[email protected]
cron
MAILTO
В целом, пожалуйста, хотя бы бегло просмотрите страницы руководства cron(8)
.crontab(5)
…и, пожалуйста, удалите своих пользователей из crontab
группы!
решение2
Я не понимаю, почему решение @kostix не позволяет запускать код от имени root.
По сути, вы предоставляете пользователям доступ к root crontab. Это очень опасно.
Лично я бы создал общую учетную запись с теми же правами, что и у пользователей, и разрешил бы пользователям подключаться к этому пользователю и редактировать его crontab.