Как разрешить нескольким пользователям доступ к одному и тому же 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.