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

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

Я пытаюсь создать 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ниже.

Поэтому я бы сделал следующее:

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

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

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

  4. Расскажите своим пользователям о том, где найти этот файл, и о правилах его форматирования (их можно разместить в файле в виде комментариев).

Обратите внимание, что вам может потребоваться выяснить, как обрабатывать отправку писем всем вашим пользователям. Я бы сначала проверил, можно ли задать MAILTOпеременную окружения subscribed в виде cronсписка адресов электронной почты, разделенных запятыми (например, ), или, если это не удастся, вам, вероятно, придется настроить почтовый псевдоним либо в вашем локальном MTA, либо в MTA, получающем почту, сгенерированную в вашей системе, и использовать значение этого псевдонима для переменной.[email protected],[email protected],[email protected]cronMAILTO

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

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

решение2

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

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

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

Связанный контент