Могут ли символические ссылки использоваться в /etc/cron.d/?

С помощью этого скрипта

#!/usr/bin/env bash
while read -r line; do 
    year=$(sed 's/^.\{4,4\}\([0-9]\{3,3\}\)0\.\(.*\)o/\1 \2/' <(echo "$line") | awk '{system("date -d \"01/01/"$2" +"$1" days -1 days\" +\"%Y\"")}')
    month=$(sed 's/^.\{4,4\}\([0-9]\{3,3\}\)0\.\(.*\)o/\1 \2/' <(echo "$line") | awk '{system("date -d \"01/01/"$2" +"$1" days -1 days\" +\"%m\"")}')
    day=$(sed 's/^.\{4,4\}\([0-9]\{3,3\}\)0\.\(.*\)o/\1 \2/' <(echo "$line") | awk '{system("date -d \"01/01/"$2" +"$1" days -1 days\" +\"%d\"")}')
done <foo

Пример

#!/usr/bin/env bash
while read -r line; do 
    year=$(sed 's/^.\{4,4\}\([0-9]\{3,3\}\)0\.\(.*\)o/\1 \2/' <(echo "$line") | awk '{system("date -d \"01/01/"$2" +"$1" days -1 days\" +\"%Y\"")}')
    month=$(sed 's/^.\{4,4\}\([0-9]\{3,3\}\)0\.\(.*\)o/\1 \2/' <(echo "$line") | awk '{system("date -d \"01/01/"$2" +"$1" days -1 days\" +\"%m\"")}')
    day=$(sed 's/^.\{4,4\}\([0-9]\{3,3\}\)0\.\(.*\)o/\1 \2/' <(echo "$line") | awk '{system("date -d \"01/01/"$2" +"$1" days -1 days\" +\"%d\"")}')

    echo "$year"
    echo "$month"
    echo "$day"
done <foo

дает выход

2014
03
08
2014
03
09
2014
03
10
22
задан 28 July 2011 в 18:51

21 ответ

Это имеет последствия для безопасности. Сценарии в файле /etc/cron.d/ выполняются root с привилегиями root. Это плохая идея для символических ссылок там, которые принадлежат и доступны для записи для пользователей, не являющихся root, поскольку ваша система может быть скомпрометирована таким образом

14
ответ дан 25 July 2018 в 21:32

Я проверил бы справочную страницу cron для вашей версии Ubuntu (я предполагаю, что мы говорим об Ubuntu на этом форуме!):

Файлы в этом каталоге должны принадлежать root, не нужны (они являются файлами конфигурации, так же, как / etc / crontab) и должны соответствовать одному и тому же соглашению об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания , и дефис. Это означает, что они не могут содержать никаких точек.

Как отмечает Флориан, если этот файл доступен для записи не-root-пользователям, это дыра в безопасности, потому что задания будут выполняться с помощью root (для тех, кто назван в качестве владельца задания в файле). Также обратите внимание, что

Файлы в этом каталоге должны принадлежать root, не обязательно быть исполняемыми (они являются файлами конфигурации, как и / etc / crontab) и должны соответствовать такое же соглашение об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания и дефис. Это означает, что они не могут содержать никаких точек.

Этот каталог может содержать любой файл, определяющий задачи, следующие за форматом, используемым в / etc / crontab, то есть, в отличие от пользовательской катушки cron, эти файлы должны предоставлять имя пользователя для запуска задачи, как в определении задачи.

2
ответ дан 25 July 2018 в 21:32
  • 1
    Это означает, что они не могут содержать никаких точек. обратите внимание на это. У меня была точка в названии ссылки. Это было виновником моих неработающих работ для меня. Плюс: сам файл ДОЛЖЕН заканчиваться CRLF – Dr. Gianluigi Zane Zanettini 22 September 2016 в 13:26

Согласно man crond

CAVEATS Все файлы crontab должны быть обычными файлами или символическими ссылками в обычные файлы, они не должны быть исполняемыми или записываться для кого-либо, кроме владельца. Это требование можно переопределить, используя опцию -p в командной строке. Если используется поддержка поддержки, изменения в symlinked crontab не будут автоматически замечены демонами cron. Демон cron должен получить сигнал SIGHUP для перезагрузки crontab. Это ограничение API inotify. Выход syslog будет использоваться вместо почты, когда sendmail не будет установлен.

Это раздражало меня и меня, так сказать, короткое да, вы можете использовать символические ссылки, если не regular files or symlinks to a regular file он должен использовать переключатель -p.

25
ответ дан 25 July 2018 в 21:32
  • 1
    Вы также обнаружите, что файл должен принадлежать пользователю cron для выполнения заданий; например, если символическая ссылка /etc/cron.d/bobsjob указывает на файл, принадлежащий пользователю «bob», cron завершится неудачей с сообщением syslog WRONG FILE OWNER (/etc/cron.d/bobsjob). – Craig Ringer 16 November 2012 в 08:43
  • 2
    @CraigRinger У меня есть пользователь с именем & quot; www-data & quot; владея cron-файлом, я в настоящее время получаю ошибку WRONG FILE OWNER в syslog. Как я могу сделать выполнение Cron с использованием пользователя «www-data». Я не хочу создавать собственный файл root. – CMCDragonkai 11 January 2014 в 00:47
  • 3
    @CMCDragonkai sudo -u www-data crontab -e и добавить его в crontab пользователя www-data. Затем он будет запущен как пользователь www-data. Не забудьте удалить явный столбец пользователя, поскольку он не существует в пользовательских crontabs. – Craig Ringer 11 January 2014 в 09:13
  • 4
    Поместит ли этот файл внутри etc/cron.? Я был под впечатлением, что инструмент crontab поставит задачу где-то еще. – CMCDragonkai 11 January 2014 в 16:26
  • 5
    @CMCDragonkai Вы правы, вызывать crontab -e не то, что вы хотите в этом случае. Я ищу, но не нашел способ запустить пользователя crontab как пользователь без полномочий root. – ACK_stoverflow 3 October 2016 в 18:32

Это имеет последствия для безопасности. Сценарии в файле /etc/cron.d/ выполняются root с привилегиями root. Это плохая идея для символических ссылок там, которые принадлежат и доступны для записи для пользователей, не являющихся root, поскольку ваша система может быть скомпрометирована таким образом

14
ответ дан 31 July 2018 в 10:34

Я проверил бы справочную страницу cron для вашей версии Ubuntu (я предполагаю, что мы говорим об Ubuntu на этом форуме!):

Файлы в этом каталоге должны принадлежать root, не нужны (они являются файлами конфигурации, так же, как / etc / crontab) и должны соответствовать одному и тому же соглашению об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания , и дефис. Это означает, что они не могут содержать никаких точек.

Как отмечает Флориан, если этот файл доступен для записи не-root-пользователям, это дыра в безопасности, потому что задания будут выполняться с помощью root (для тех, кто назван в качестве владельца задания в файле). Также обратите внимание, что

Файлы в этом каталоге должны принадлежать root, не обязательно быть исполняемыми (они являются файлами конфигурации, как и / etc / crontab) и должны соответствовать такое же соглашение об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания и дефис. Это означает, что они не могут содержать никаких точек.

Этот каталог может содержать любой файл, определяющий задачи, следующие за форматом, используемым в / etc / crontab, то есть, в отличие от пользовательской катушки cron, эти файлы должны предоставлять имя пользователя для запуска задачи, как в определении задачи.

2
ответ дан 31 July 2018 в 10:34
  • 1
    Это означает, что они не могут содержать никаких точек. обратите внимание на это. У меня была точка в названии ссылки. Это было виновником моих неработающих работ для меня. Плюс: сам файл ДОЛЖЕН заканчиваться CRLF – Dr. Gianluigi Zane Zanettini 22 September 2016 в 13:26

Согласно man crond

CAVEATS Все файлы crontab должны быть обычными файлами или символическими ссылками в обычные файлы, они не должны быть исполняемыми или записываться для кого-либо, кроме владельца. Это требование можно переопределить, используя опцию -p в командной строке. Если используется поддержка поддержки, изменения в symlinked crontab не будут автоматически замечены демонами cron. Демон cron должен получить сигнал SIGHUP для перезагрузки crontab. Это ограничение API inotify. Выход syslog будет использоваться вместо почты, когда sendmail не будет установлен.

Это раздражало меня и меня, так сказать, короткое да, вы можете использовать символические ссылки, если не regular files or symlinks to a regular file он должен использовать переключатель -p.

25
ответ дан 31 July 2018 в 10:34
  • 1
    Вы также обнаружите, что файл должен принадлежать пользователю cron для выполнения заданий; например, если символическая ссылка /etc/cron.d/bobsjob указывает на файл, принадлежащий пользователю «bob», cron завершится неудачей с сообщением syslog WRONG FILE OWNER (/etc/cron.d/bobsjob). – Craig Ringer 16 November 2012 в 08:43
  • 2
    @CraigRinger У меня есть пользователь с именем & quot; www-data & quot; владея cron-файлом, я в настоящее время получаю ошибку WRONG FILE OWNER в syslog. Как я могу сделать выполнение Cron с использованием пользователя «www-data». Я не хочу создавать собственный файл root. – CMCDragonkai 11 January 2014 в 00:47
  • 3
    @CMCDragonkai sudo -u www-data crontab -e и добавить его в crontab пользователя www-data. Затем он будет запущен как пользователь www-data. Не забудьте удалить явный столбец пользователя, поскольку он не существует в пользовательских crontabs. – Craig Ringer 11 January 2014 в 09:13
  • 4
    Поместит ли этот файл внутри etc/cron.? Я был под впечатлением, что инструмент crontab поставит задачу где-то еще. – CMCDragonkai 11 January 2014 в 16:26
  • 5
    @CMCDragonkai Вы правы, вызывать crontab -e не то, что вы хотите в этом случае. Я ищу, но не нашел способ запустить пользователя crontab как пользователь без полномочий root. – ACK_stoverflow 3 October 2016 в 18:32

Это имеет последствия для безопасности. Сценарии в файле /etc/cron.d/ выполняются root с привилегиями root. Это плохая идея для символических ссылок там, которые принадлежат и доступны для записи для пользователей, не являющихся root, поскольку ваша система может быть скомпрометирована таким образом

14
ответ дан 31 July 2018 в 11:37

Я проверил бы справочную страницу cron для вашей версии Ubuntu (я предполагаю, что мы говорим об Ubuntu на этом форуме!):

Файлы в этом каталоге должны принадлежать root, не нужны (они являются файлами конфигурации, так же, как / etc / crontab) и должны соответствовать одному и тому же соглашению об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания , и дефис. Это означает, что они не могут содержать никаких точек.

Как отмечает Флориан, если этот файл доступен для записи не-root-пользователям, это дыра в безопасности, потому что задания будут выполняться с помощью root (для тех, кто назван в качестве владельца задания в файле). Также обратите внимание, что

Файлы в этом каталоге должны принадлежать root, не обязательно быть исполняемыми (они являются файлами конфигурации, как и / etc / crontab) и должны соответствовать такое же соглашение об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания и дефис. Это означает, что они не могут содержать никаких точек.

Этот каталог может содержать любой файл, определяющий задачи, следующие за форматом, используемым в / etc / crontab, то есть, в отличие от пользовательской катушки cron, эти файлы должны предоставлять имя пользователя для запуска задачи, как в определении задачи.

2
ответ дан 31 July 2018 в 11:37
  • 1
    Это означает, что они не могут содержать никаких точек. обратите внимание на это. У меня была точка в названии ссылки. Это было виновником моих неработающих работ для меня. Плюс: сам файл ДОЛЖЕН заканчиваться CRLF – Dr. Gianluigi Zane Zanettini 22 September 2016 в 13:26

Согласно man crond

CAVEATS Все файлы crontab должны быть обычными файлами или символическими ссылками в обычные файлы, они не должны быть исполняемыми или записываться для кого-либо, кроме владельца. Это требование можно переопределить, используя опцию -p в командной строке. Если используется поддержка поддержки, изменения в symlinked crontab не будут автоматически замечены демонами cron. Демон cron должен получить сигнал SIGHUP для перезагрузки crontab. Это ограничение API inotify. Выход syslog будет использоваться вместо почты, когда sendmail не будет установлен.

Это раздражало меня и меня, так сказать, короткое да, вы можете использовать символические ссылки, если не regular files or symlinks to a regular file он должен использовать переключатель -p.

25
ответ дан 31 July 2018 в 11:37
  • 1
    Вы также обнаружите, что файл должен принадлежать пользователю cron для выполнения заданий; например, если символическая ссылка /etc/cron.d/bobsjob указывает на файл, принадлежащий пользователю «bob», cron завершится неудачей с сообщением syslog WRONG FILE OWNER (/etc/cron.d/bobsjob). – Craig Ringer 16 November 2012 в 08:43
  • 2
    @CraigRinger У меня есть пользователь с именем & quot; www-data & quot; владея cron-файлом, я в настоящее время получаю ошибку WRONG FILE OWNER в syslog. Как я могу сделать выполнение Cron с использованием пользователя «www-data». Я не хочу создавать собственный файл root. – CMCDragonkai 11 January 2014 в 00:47
  • 3
    @CMCDragonkai sudo -u www-data crontab -e и добавить его в crontab пользователя www-data. Затем он будет запущен как пользователь www-data. Не забудьте удалить явный столбец пользователя, поскольку он не существует в пользовательских crontabs. – Craig Ringer 11 January 2014 в 09:13
  • 4
    Поместит ли этот файл внутри etc/cron.? Я был под впечатлением, что инструмент crontab поставит задачу где-то еще. – CMCDragonkai 11 January 2014 в 16:26
  • 5
    @CMCDragonkai Вы правы, вызывать crontab -e не то, что вы хотите в этом случае. Я ищу, но не нашел способ запустить пользователя crontab как пользователь без полномочий root. – ACK_stoverflow 3 October 2016 в 18:32

Это имеет последствия для безопасности. Сценарии в файле /etc/cron.d/ выполняются root с привилегиями root. Это плохая идея для символических ссылок там, которые принадлежат и доступны для записи для пользователей, не являющихся root, поскольку ваша система может быть скомпрометирована таким образом

14
ответ дан 2 August 2018 в 03:09

Я проверил бы справочную страницу cron для вашей версии Ubuntu (я предполагаю, что мы говорим об Ubuntu на этом форуме!):

Файлы в этом каталоге должны принадлежать root, не нужны (они являются файлами конфигурации, так же, как / etc / crontab) и должны соответствовать одному и тому же соглашению об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания , и дефис. Это означает, что они не могут содержать никаких точек.

Как отмечает Флориан, если этот файл доступен для записи не-root-пользователям, это дыра в безопасности, потому что задания будут выполняться с помощью root (для тех, кто назван в качестве владельца задания в файле). Также обратите внимание, что

Файлы в этом каталоге должны принадлежать root, не обязательно быть исполняемыми (они являются файлами конфигурации, как и / etc / crontab) и должны соответствовать такое же соглашение об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания и дефис. Это означает, что они не могут содержать никаких точек.

Этот каталог может содержать любой файл, определяющий задачи, следующие за форматом, используемым в / etc / crontab, то есть, в отличие от пользовательской катушки cron, эти файлы должны предоставлять имя пользователя для запуска задачи, как в определении задачи.

2
ответ дан 2 August 2018 в 03:09
  • 1
    Это означает, что они не могут содержать никаких точек. обратите внимание на это. У меня была точка в названии ссылки. Это было виновником моих неработающих работ для меня. Плюс: сам файл ДОЛЖЕН заканчиваться CRLF – Dr. Gianluigi Zane Zanettini 22 September 2016 в 13:26

Согласно man crond

CAVEATS Все файлы crontab должны быть обычными файлами или символическими ссылками в обычные файлы, они не должны быть исполняемыми или записываться для кого-либо, кроме владельца. Это требование можно переопределить, используя опцию -p в командной строке. Если используется поддержка поддержки, изменения в symlinked crontab не будут автоматически замечены демонами cron. Демон cron должен получить сигнал SIGHUP для перезагрузки crontab. Это ограничение API inotify. Выход syslog будет использоваться вместо почты, когда sendmail не будет установлен.

Это раздражало меня и меня, так сказать, короткое да, вы можете использовать символические ссылки, если не regular files or symlinks to a regular file он должен использовать переключатель -p.

25
ответ дан 2 August 2018 в 03:09
  • 1
    Вы также обнаружите, что файл должен принадлежать пользователю cron для выполнения заданий; например, если символическая ссылка /etc/cron.d/bobsjob указывает на файл, принадлежащий пользователю «bob», cron завершится неудачей с сообщением syslog WRONG FILE OWNER (/etc/cron.d/bobsjob). – Craig Ringer 16 November 2012 в 08:43
  • 2
    @CraigRinger У меня есть пользователь с именем & quot; www-data & quot; владея cron-файлом, я в настоящее время получаю ошибку WRONG FILE OWNER в syslog. Как я могу сделать выполнение Cron с использованием пользователя «www-data». Я не хочу создавать собственный файл root. – CMCDragonkai 11 January 2014 в 00:47
  • 3
    @CMCDragonkai sudo -u www-data crontab -e и добавить его в crontab пользователя www-data. Затем он будет запущен как пользователь www-data. Не забудьте удалить явный столбец пользователя, поскольку он не существует в пользовательских crontabs. – Craig Ringer 11 January 2014 в 09:13
  • 4
    Поместит ли этот файл внутри etc/cron.? Я был под впечатлением, что инструмент crontab поставит задачу где-то еще. – CMCDragonkai 11 January 2014 в 16:26
  • 5
    @CMCDragonkai Вы правы, вызывать crontab -e не то, что вы хотите в этом случае. Я ищу, но не нашел способ запустить пользователя crontab как пользователь без полномочий root. – ACK_stoverflow 3 October 2016 в 18:32

Это имеет последствия для безопасности. Сценарии в файле /etc/cron.d/ выполняются root с привилегиями root. Это плохая идея для символических ссылок там, которые принадлежат и доступны для записи для пользователей, не являющихся root, поскольку ваша система может быть скомпрометирована таким образом

14
ответ дан 4 August 2018 в 19:02

Я проверил бы справочную страницу cron для вашей версии Ubuntu (я предполагаю, что мы говорим об Ubuntu на этом форуме!):

Файлы в этом каталоге должны принадлежать root, не нужны (они являются файлами конфигурации, так же, как / etc / crontab) и должны соответствовать одному и тому же соглашению об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания , и дефис. Это означает, что они не могут содержать никаких точек.

Как отмечает Флориан, если этот файл доступен для записи не-root-пользователям, это дыра в безопасности, потому что задания будут выполняться с помощью root (для тех, кто назван в качестве владельца задания в файле). Также обратите внимание, что

Файлы в этом каталоге должны принадлежать root, не обязательно быть исполняемыми (они являются файлами конфигурации, как и / etc / crontab) и должны соответствовать такое же соглашение об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания и дефис. Это означает, что они не могут содержать никаких точек.

Этот каталог может содержать любой файл, определяющий задачи, следующие за форматом, используемым в / etc / crontab, то есть, в отличие от пользовательской катушки cron, эти файлы должны предоставлять имя пользователя для запуска задачи, как в определении задачи.

2
ответ дан 4 August 2018 в 19:02
  • 1
    Это означает, что они не могут содержать никаких точек. обратите внимание на это. У меня была точка в названии ссылки. Это было виновником моих неработающих работ для меня. Плюс: сам файл ДОЛЖЕН заканчиваться CRLF – Dr. Gianluigi Zane Zanettini 22 September 2016 в 13:26

Согласно man crond

CAVEATS Все файлы crontab должны быть обычными файлами или символическими ссылками в обычные файлы, они не должны быть исполняемыми или записываться для кого-либо, кроме владельца. Это требование можно переопределить, используя опцию -p в командной строке. Если используется поддержка поддержки, изменения в symlinked crontab не будут автоматически замечены демонами cron. Демон cron должен получить сигнал SIGHUP для перезагрузки crontab. Это ограничение API inotify. Выход syslog будет использоваться вместо почты, когда sendmail не будет установлен.

Это раздражало меня и меня, так сказать, короткое да, вы можете использовать символические ссылки, если не regular files or symlinks to a regular file он должен использовать переключатель -p.

25
ответ дан 4 August 2018 в 19:02
  • 1
    Вы также обнаружите, что файл должен принадлежать пользователю cron для выполнения заданий; например, если символическая ссылка /etc/cron.d/bobsjob указывает на файл, принадлежащий пользователю «bob», cron завершится неудачей с сообщением syslog WRONG FILE OWNER (/etc/cron.d/bobsjob). – Craig Ringer 16 November 2012 в 08:43
  • 2
    @CraigRinger У меня есть пользователь с именем & quot; www-data & quot; владея cron-файлом, я в настоящее время получаю ошибку WRONG FILE OWNER в syslog. Как я могу сделать выполнение Cron с использованием пользователя «www-data». Я не хочу создавать собственный файл root. – CMCDragonkai 11 January 2014 в 00:47
  • 3
    @CMCDragonkai sudo -u www-data crontab -e и добавить его в crontab пользователя www-data. Затем он будет запущен как пользователь www-data. Не забудьте удалить явный столбец пользователя, поскольку он не существует в пользовательских crontabs. – Craig Ringer 11 January 2014 в 09:13
  • 4
    Поместит ли этот файл внутри etc/cron.? Я был под впечатлением, что инструмент crontab поставит задачу где-то еще. – CMCDragonkai 11 January 2014 в 16:26
  • 5
    @CMCDragonkai Вы правы, вызывать crontab -e не то, что вы хотите в этом случае. Я ищу, но не нашел способ запустить пользователя crontab как пользователь без полномочий root. – ACK_stoverflow 3 October 2016 в 18:32

Это имеет последствия для безопасности. Сценарии в файле /etc/cron.d/ выполняются root с привилегиями root. Это плохая идея для символических ссылок там, которые принадлежат и доступны для записи для пользователей, не являющихся root, поскольку ваша система может быть скомпрометирована таким образом

14
ответ дан 6 August 2018 в 03:21

Я проверил бы справочную страницу cron для вашей версии Ubuntu (я предполагаю, что мы говорим об Ubuntu на этом форуме!):

Файлы в этом каталоге должны принадлежать root, не нужны (они являются файлами конфигурации, так же, как / etc / crontab) и должны соответствовать одному и тому же соглашению об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания , и дефис. Это означает, что они не могут содержать никаких точек.

Как отмечает Флориан, если этот файл доступен для записи не-root-пользователям, это дыра в безопасности, потому что задания будут выполняться с помощью root (для тех, кто назван в качестве владельца задания в файле). Также обратите внимание, что

Файлы в этом каталоге должны принадлежать root, не обязательно быть исполняемыми (они являются файлами конфигурации, как и / etc / crontab) и должны соответствовать такое же соглашение об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания и дефис. Это означает, что они не могут содержать никаких точек.

Этот каталог может содержать любой файл, определяющий задачи, следующие за форматом, используемым в / etc / crontab, то есть, в отличие от пользовательской катушки cron, эти файлы должны предоставлять имя пользователя для запуска задачи, как в определении задачи.

2
ответ дан 6 August 2018 в 03:21
  • 1
    Это означает, что они не могут содержать никаких точек. обратите внимание на это. У меня была точка в названии ссылки. Это было виновником моих неработающих работ для меня. Плюс: сам файл ДОЛЖЕН заканчиваться CRLF – Dr. Gianluigi Zane Zanettini 22 September 2016 в 13:26

Согласно man crond

CAVEATS Все файлы crontab должны быть обычными файлами или символическими ссылками в обычные файлы, они не должны быть исполняемыми или записываться для кого-либо, кроме владельца. Это требование можно переопределить, используя опцию -p в командной строке. Если используется поддержка поддержки, изменения в symlinked crontab не будут автоматически замечены демонами cron. Демон cron должен получить сигнал SIGHUP для перезагрузки crontab. Это ограничение API inotify. Выход syslog будет использоваться вместо почты, когда sendmail не будет установлен.

Это раздражало меня и меня, так сказать, короткое да, вы можете использовать символические ссылки, если не regular files or symlinks to a regular file он должен использовать переключатель -p.

25
ответ дан 6 August 2018 в 03:21
  • 1
    Вы также обнаружите, что файл должен принадлежать пользователю cron для выполнения заданий; например, если символическая ссылка /etc/cron.d/bobsjob указывает на файл, принадлежащий пользователю «bob», cron завершится неудачей с сообщением syslog WRONG FILE OWNER (/etc/cron.d/bobsjob). – Craig Ringer 16 November 2012 в 08:43
  • 2
    @CraigRinger У меня есть пользователь с именем & quot; www-data & quot; владея cron-файлом, я в настоящее время получаю ошибку WRONG FILE OWNER в syslog. Как я могу сделать выполнение Cron с использованием пользователя «www-data». Я не хочу создавать собственный файл root. – CMCDragonkai 11 January 2014 в 00:47
  • 3
    @CMCDragonkai sudo -u www-data crontab -e и добавить его в crontab пользователя www-data. Затем он будет запущен как пользователь www-data. Не забудьте удалить явный столбец пользователя, поскольку он не существует в пользовательских crontabs. – Craig Ringer 11 January 2014 в 09:13
  • 4
    Поместит ли этот файл внутри etc/cron.? Я был под впечатлением, что инструмент crontab поставит задачу где-то еще. – CMCDragonkai 11 January 2014 в 16:26
  • 5
    @CMCDragonkai Вы правы, вызывать crontab -e не то, что вы хотите в этом случае. Я ищу, но не нашел способ запустить пользователя crontab как пользователь без полномочий root. – ACK_stoverflow 3 October 2016 в 18:32

Это имеет последствия для безопасности. Сценарии в файле /etc/cron.d/ выполняются root с привилегиями root. Это плохая идея для символических ссылок там, которые принадлежат и доступны для записи для пользователей, не являющихся root, поскольку ваша система может быть скомпрометирована таким образом

14
ответ дан 7 August 2018 в 21:07

Я проверил бы справочную страницу cron для вашей версии Ubuntu (я предполагаю, что мы говорим об Ubuntu на этом форуме!):

Файлы в этом каталоге должны принадлежать root, не нужны (они являются файлами конфигурации, так же, как / etc / crontab) и должны соответствовать одному и тому же соглашению об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания , и дефис. Это означает, что они не могут содержать никаких точек.

Как отмечает Флориан, если этот файл доступен для записи не-root-пользователям, это дыра в безопасности, потому что задания будут выполняться с помощью root (для тех, кто назван в качестве владельца задания в файле). Также обратите внимание, что

Файлы в этом каталоге должны принадлежать root, не обязательно быть исполняемыми (они являются файлами конфигурации, как и / etc / crontab) и должны соответствовать такое же соглашение об именах, которое используется в run-parts (8): они должны состоять исключительно из букв верхнего и нижнего регистра, цифр, символов подчеркивания и дефис. Это означает, что они не могут содержать никаких точек.

Этот каталог может содержать любой файл, определяющий задачи, следующие за форматом, используемым в / etc / crontab, то есть, в отличие от пользовательской катушки cron, эти файлы должны предоставлять имя пользователя для запуска задачи, как в определении задачи.

2
ответ дан 7 August 2018 в 21:07
  • 1
    Это означает, что они не могут содержать никаких точек. обратите внимание на это. У меня была точка в названии ссылки. Это было виновником моих неработающих работ для меня. Плюс: сам файл ДОЛЖЕН заканчиваться CRLF – Dr. Gianluigi Zane Zanettini 22 September 2016 в 13:26

Согласно man crond

CAVEATS Все файлы crontab должны быть обычными файлами или символическими ссылками в обычные файлы, они не должны быть исполняемыми или записываться для кого-либо, кроме владельца. Это требование можно переопределить, используя опцию -p в командной строке. Если используется поддержка поддержки, изменения в symlinked crontab не будут автоматически замечены демонами cron. Демон cron должен получить сигнал SIGHUP для перезагрузки crontab. Это ограничение API inotify. Выход syslog будет использоваться вместо почты, когда sendmail не будет установлен.

Это раздражало меня и меня, так сказать, короткое да, вы можете использовать символические ссылки, если не regular files or symlinks to a regular file он должен использовать переключатель -p.

25
ответ дан 7 August 2018 в 21:07
  • 1
    Вы также обнаружите, что файл должен принадлежать пользователю cron для выполнения заданий; например, если символическая ссылка /etc/cron.d/bobsjob указывает на файл, принадлежащий пользователю «bob», cron завершится неудачей с сообщением syslog WRONG FILE OWNER (/etc/cron.d/bobsjob). – Craig Ringer 16 November 2012 в 08:43
  • 2
    @CraigRinger У меня есть пользователь с именем & quot; www-data & quot; владея cron-файлом, я в настоящее время получаю ошибку WRONG FILE OWNER в syslog. Как я могу сделать выполнение Cron с использованием пользователя «www-data». Я не хочу создавать собственный файл root. – CMCDragonkai 11 January 2014 в 00:47
  • 3
    @CMCDragonkai sudo -u www-data crontab -e и добавить его в crontab пользователя www-data. Затем он будет запущен как пользователь www-data. Не забудьте удалить явный столбец пользователя, поскольку он не существует в пользовательских crontabs. – Craig Ringer 11 January 2014 в 09:13
  • 4
    Поместит ли этот файл внутри etc/cron.? Я был под впечатлением, что инструмент crontab поставит задачу где-то еще. – CMCDragonkai 11 January 2014 в 16:26
  • 5
    @CMCDragonkai Вы правы, вызывать crontab -e не то, что вы хотите в этом случае. Я ищу, но не нашел способ запустить пользователя crontab как пользователь без полномочий root. – ACK_stoverflow 3 October 2016 в 18:32

Другие вопросы по тегам:

Похожие вопросы: