На самом деле коготь ложки привел меня к ответу, но позвольте мне создать свой собственный, более полный ответ, чтобы он мог всплыть наверх.
Я не знаю, насколько это распространено, но в некоторой онлайн-документации по Ubuntu говорится, что / etc / crontab может быть перезаписан при обновлении, и предпочтительным решением является создание файла с именем /etc/cron.d/anything (где может быть что угодно, ну что угодно. Любое имя файла)
Я создал файл с именем /etc/cron.d/nobody, и я запускаю сценарии как непривилегированный пользователь. пример строки:
# run the following every day at 01:02 AM 02 01 * * * nobody /usr/local/bin/script-to-run-as-nobody.sh
Я поместил комментарий в crontab root, чтобы другие могли следить за ним, поскольку в настоящий момент все задачи crontab выполняются оттуда. Не совсем лучшая практика.
Кроме того, в целях тестирования мне нужно сначала запустить задание через командную строку. так как у меня есть привилегии sudo, я использую:
$ sudo -u root sudo -u nobody /usr/local/bin/script-to-run-as-nobody.sh
Если этот сценарий должен выводиться в / dev / stderr или / dev / stdout, выполните следующие действия:
$ chmod o+w /dev/ttyp1
и сделать:
$ chmod o-w /dev/ttyp1
когда вы закончите тестирование, чтобы запретить кому-либо отправлять нежелательные сообщения на экран вашего терминала. (используемый вами терминал может отличаться от / dev / tty1, поэтому введите имя пользователя $ ls -ltr / dev / tty * | grep, чтобы узнать, какой из них ваш).