После обновления OSX до Mojave кажется, что я больше не могу редактировать crontab. Любая попытка сделать это приведет к появлению сообщения об ошибке в заголовке этого вопроса.
Я отслеживал crontab до /private/var/at
и разрешения такие же, как у другого компьютера, на котором запущен El Capitan:
/private/var/at$ ls -laO
total 0
drwxr-xr-x 8 daemon wheel - 256B Feb 18 16:47 ./
drwxr-xr-x 26 root wheel sunlnk 832B Feb 18 16:51 ../
-rw-r--r-- 1 root wheel - 0B Aug 22 22:11 at.deny
-rw-r--r-- 1 root wheel compressed 6B Aug 17 2018 cron.deny
drwxr-xr-x 2 daemon wheel - 64B Aug 17 2018 jobs/
drwxr-xr-x 2 daemon wheel - 64B Aug 22 22:11 spool/
drwx------ 4 root wheel - 128B Nov 22 12:46 tabs/
drwx------ 2 root wheel - 64B Feb 18 15:04 tmp/
/private/var$ ls -laOd at
drwxr-xr-x 8 daemon wheel - 256B Feb 18 16:47 at/
/private$ ls -laOd var
drwxr-xr-x 26 root wheel sunlnk 832B Feb 18 16:51 var/
В отличие от этого компьютера, любые изменения sudo, которые я пытаюсь сделать ниже /private/var/at
(например. sudo touch test
) получает сообщение «Операция запрещена». На /private/var
и выше, я могу sudo изменить что угодно (как в ограниченном и очевидном типе изменений, которые я тестировал внутри /private/var/at
не что-нибудь).
Что-то мешает мне изменить содержимое /private/var/at
и я думаю, что это вызывает сообщение об ошибке crontab, потому что crontab
не может писать на /private/var/at/tmp
и создайте tmp crontab-файл, указанный в сообщении об ошибке.
Я знаю, что crontab не является предпочтительным методом в OSX, но вопрос не в этом.
В короткая ответ:
Перейдите в Системные настройки> Безопасность и конфиденциальность и предоставьте Терминалу полный доступ к диску.
В длинный ответ:
Другой подход, не требующий изменения разрешений, основанный на том факте, что sshd
уже включен для `` Полный доступ к диску '', заключается в выполнении обновлений crontab через ssh на localhost (при условии, что удаленный вход / ssh включен в настройках системы общего доступа), например:
ssh localhost
crontab -e
Мне пришлось добавить cron
к Системные настройки> Безопасность и конфиденциальность> Полный доступ к диску
/usr/sbin/cron
. (Вы можете проверить свой cron
исполняемый файл, запустив $ which cron
в терминале)]
Песочница мешает вам написать crontab. Если вы запустите команду crontab…
screen
команда: либо выйти из screen
или используйте ответ @Pierz.