Intereting Posts
etckeeper для opensuse – установка скрипта bash и настройка Более быстрое автоматическое завершение для файлов / папок kanjis, без необходимости переключения IME Как предотвратить переключение между приложениями? объединение текстового файла в группы из 3 записей Статический IP-адрес на beaglebone Невозможно выполнить исходящие SNMP-соединения при включении IPTables Получить информацию о swap-памяти, где swapinfo недоступен Есть ли способ заставить socat не открывать целевое соединение, пока оно не получит соединение прослушивателя? gdrive -bash: / usr / bin / drive: невозможно выполнить двоичный файл Как удалить все подкаталоги из каталога? Скрипт Simple Shell для регистрации дискового пространства Почему процесс не существует (кажется) существует до того, как читать переместите файл, соответствующий шаблону в сценарии оболочки Как отключить графическую карту nvidia и начать использовать intel hd 4600 таинственный скрипт awk соединяет строки

Зло ли ссылка на кронтаб?

Я думаю о том, чтобы сделать что-то вроде:

sudo ln -s ~/myCustomCrontab /var/spool/cron/crontabs/username 

потому что я хотел бы иметь все настроенные файлы в моем домашнем каталоге. Возможные риски, о которых я могу думать, – это

  • безопасность (как должны разрешения быть еще безопасными?)
  • системная ошибка

Или есть лучший способ «отслеживать файл»?

Это не сработает , по крайней мере, в системах, подобных Debian (символические или жестко привязанные файлы crontab для (несистемных) пользователей вообще игнорируются ). Он также терпит неудачу, если вы используете crontab для изменения вашего файла crontab. Если версия cron по-прежнему принимает символические файлы crontab, она создает возможные дыры в безопасности, поскольку файл crontab больше не проверяется на согласованность.

С вашим решением crontab -e вылетает, если вы (или какой-либо скрипт установки) меняете файл crontab:

 crontab: crontabs/username: rename: Operation not permitted 

поскольку он перемещает временный файл в /var/spool/cron/crontabs/username чтобы мгновенно заменить старый файл.

В crontab есть много дополнительных проверок безопасности, построенных таким образом, что cron-система не может использоваться для компрометации системы. Он проверяет, например, содержимое файла cron перед установкой или изменением. Недопустимый файл cron может привести к сбою демона cron или может (по крайней мере теоретически) использовать его для получения большего количества привилегий в системе. С вашим решением больше нет проверки для файла crontab.

Нет!

Не делай этого!

Во что бы то ни стало, есть копия вашего crontab (и других), хранящихся где-нибудь, например, ваш домашний каталог, но не трогайте системные файлы.

 vi my_crontab # Edit my copy of the crontab file crontab my_crontab # Install it 

(Лично я использую $HOME/.crontab для моей $HOME/.crontab для каждого пользователя.)

Лучшим способом отслеживания системных файлов было бы создание репозитория исходного кода (git, cvs, mercury, whatever) и использование этого для отслеживания изменений. Makefile может использоваться для установки изменений в соответствующие системные каталоги и перезапуска зависимых служб; в этом случае вы просто sudo make install и это будет.