Если вы достаточно обеспечили доступ к сценарию и приняли разумные меры предосторожности, запуск чего-либо из root crontab обычно не представляет угрозы для безопасности.
Но не запускайте скрипт с правами root, который пользователь, не являющийся пользователем root, может редактировать или перезаписывать. Это относится к заданиям, запускаемым из cron, а также в интерактивном режиме.
Если этот скрипт включает в себя другие файлы, то же самое относится и к ним.
В случае сомнений всегда используйте принцип наименьших привилегий. Если вы все еще не уверены, вы всегда можете задать конкретные вопросы на форумах и в IRC.
Всегда есть (почти) способ запустить что-то от имени пользователя без полномочий root. Если ничего не помогает, использование sudo для ограничения пользователя определенными командами также ограничивает потенциальный вред.
Таким образом, в приведенном вами примере создания резервной копии / etc / apache2 / sites-available этот файл по умолчанию доступен для чтения любому, что подразумевает доступ к месту назначения, доступный для записи только пользователю root.
Вы можете это исправить,
- создать группу с именем backupadmins (например)
- установить группу в каталоге назначения на backupadmins
- добавить пользователя с именем backupuser (например)
- добавьте пользователя backupuser в группу backupadmins.
- сделать каталог доступным для записи группой backupadmins
- запустите задание cron из crontab бэкапа пользователя.
Это зависит от того, что делают сценарии. Если они выполняют резервное копирование, то, вероятно, им хорошо, если они root, - если злонамеренный пользователь перезаписывает эти сценарии, у вас, вероятно, все равно будут большие проблемы.
Если они делают глупые вещи, такие как выполнение файлов, найденных в каталогах, или что-то, на что может повлиять содержимое веб-каталогов, то вам, вероятно, нужно искать альтернативы.
источник
Миллионы заданий cron по всему миру запускаются с правами суперпользователя каждый день (или в любой другой период).
Важно то, что установлены правильные разрешения. Если вы запускаете что-то, что доступно для записи всем, то злоумышленник или процесс может изменить то, что он делает.
Вообще говоря, задания Cron выполняются владельцем crontab. Пользовательский crontab может быть,
/var/spool/cron/crontabs/username
например, в. Cronjobs , которые находятся в/etc/crontab
,/etc/cron.d/
или/etc/cron.hourly
(ежедневно, еженедельно, ежемесячно) будет выполняться корнем. Важно, чтобы права владения и разрешения были правильными и для этих файлов crontab.источник