Как разрешить нескольким пользователям доступ к одному и тому же crontab в Debian Linux v8.4?

Я пытаюсь создать crontab для группы пользователей, давайте назовем группу "testGroup". Есть 3 пользователя, и я хочу дать всем им доступ к одному и тому же crontab. Я провел небольшое исследование и попытался добавить каждого отдельного пользователя в группу crontab в файле /etc/group. Однако это не сработало, поскольку для каждого пользователя есть еще 3 отдельных crontab. Это можно исправить? Если так, то как бы я поступил так?

Спасибо

1 ответ

Решение

Фон

Нет, cron не работает так, как вы предполагаете.

cron Демон читает свои crontabs из двух мест:

  • Общесистемную /etc/crontab;
  • Пользовательские crontabs.

Не существует понятия crontabs для каждой группы пользователей.

Решение

Debian настроил cron что позволяет относительно легко делать то, что вам нужно. Процитировать cron(8) страница справочника:

Кроме того, в Debian cron читает файлы в /etc/cron.d каталог. cron обрабатывает файлы в /etc/cron.d так же, как /etc/crontab файл (они следуют специальному формату этого файла, то есть они включают в себя поле пользователя). Тем не менее, они не зависят от /etc/crontabНапример, они не наследуют настройки переменных среды от него. Это изменение относится только к Debian, смотрите примечание под DEBIAN SPECIFIC ниже.

Следовательно, я бы сделал следующее:

  1. Создайте выделенную группу для вашей группы пользователей. Давайте предположим, что это "mycrontab".

  2. Добавьте своих трех пользователей в эту группу.

  3. Создать файл под /etc/cron.d и сделать его принадлежащим root:mycrontabи биты разрешения установлены в 0660 или же rw-rw-r--то есть доступ для чтения / записи к пользователю root и группа mycrontab и читать доступ всем остальным.

  4. Научите своих пользователей, где найти этот файл, и правилам его формата (они могут быть размещены в файле в виде комментариев).

Обратите внимание, что вам может понадобиться выяснить, как обрабатывать отправку писем всем вашим пользователям. Я бы проверил, если это нормально, чтобы установить MAILTO переменная окружения подчиняется cron сначала в список адресов электронной почты через запятую (например, joe@domain.lan,jane@domain.lan,jill@domain.lan) или, в противном случае, вам, вероятно, потребуется настроить псевдоним почты либо в локальном MTA, либо в MTA, получающем почту, сгенерированную cron в вашей системе, и используйте значение этого псевдонима для MAILTO переменная.

В целом, пожалуйста, дайте cron(8) а также crontab(5) страницы справочника хотя бы беглым взглядом.

... и, пожалуйста, удалите своих пользователей из crontab группа!

Я не понимаю, как решение @kostix не позволяет запускать код от имени пользователя root.

По сути, вы предоставляете пользователям доступ к корневому crontab. Это очень опасно.

Лично я бы создал общую учетную запись с такими же правами, как и пользователи, и разрешил бы пользователям использовать su - для этого пользователя и редактировать его crontab.

Другие вопросы по тегам