Как разрешить нескольким пользователям доступ к одному и тому же 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 ниже.
Следовательно, я бы сделал следующее:
Создайте выделенную группу для вашей группы пользователей. Давайте предположим, что это "mycrontab".
Добавьте своих трех пользователей в эту группу.
Создать файл под
/etc/cron.dи сделать его принадлежащимroot:mycrontabи биты разрешения установлены в0660или жеrw-rw-r--то есть доступ для чтения / записи к пользователюrootи группаmycrontabи читать доступ всем остальным.Научите своих пользователей, где найти этот файл, и правилам его формата (они могут быть размещены в файле в виде комментариев).
Обратите внимание, что вам может понадобиться выяснить, как обрабатывать отправку писем всем вашим пользователям. Я бы проверил, если это нормально, чтобы установить 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.