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