OSX mojave: «crontab: tmp / tmp.X: операция не разрешена»

После обновления OSX до Mojave, похоже, я больше не могу редактировать crontab. Любая попытка сделать это приводит к сообщению об ошибке в заголовке этого вопроса.

Я отслеживал crontab в / private / var / в , и разрешения такие же, как у другого компьютера, на котором запущен 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, но вопрос не в этом.

7
задан 19 February 2019 в 01:30
4 ответа

Короткий ответ:

Перейдите в Системные настройки> Безопасность и конфиденциальность и предоставьте Терминалу полный доступ к диску.

длинный ответ:

  1. Раскройте меню Apple и выберите «Системные настройки»
  2. Выберите «Безопасность и конфиденциальность» на панели управления
  3. Теперь выберите вкладку «Конфиденциальность», затем в левом меню выберите «Полный доступ к диску» ”
  4. Щелкните значок замка в нижнем левом углу панели предпочтений и авторизуйтесь с помощью входа на уровне администратора
  5. Теперь нажмите кнопку [+] плюс, чтобы добавить приложение с полным доступом к диску.
  6. Перейдите к / Папка Applications / Utilities / и выберите «Терминал», чтобы предоставить Терминалу права доступа к полному диску
  7. Перезапустите терминал, сообщения об ошибке «Операция запрещена» исчезнут
9
ответ дан 2 December 2019 в 23:18

Другой подход, не требующий изменения разрешений, который основан на том, что sshd уже включен для «Полный доступ к диску», заключается в выполнении обновлений crontab через ssh для localhost (при условии, что удаленный вход / ssh включен в настройках системы общего доступа), например:

ssh localhost
crontab -e
6
ответ дан 2 December 2019 в 23:18

Песочница мешает вам от написания файла crontab. Если вы запустите команду crontab…

  • с помощью Терминала на локальном компьютере : Системные настройки> Безопасность и конфиденциальность и предоставьте полный доступ к диску терминалу
  • с помощью стороннего терминального приложения : Системные настройки> Безопасность и Конфиденциальность и предоставить полный доступ к диску стороннему терминальному приложению
  • через ssh с другого компьютера : он должен работать (см. Ответ @Pierz)
  • с экрана screen , команда : либо выйдите из экрана , либо используйте ответ @Pierz.
2
ответ дан 2 December 2019 в 23:18

Мне пришлось добавить cron в Системные настройки> Безопасность и конфиденциальность> Полный доступ к диску

  1. Найдите настройки конфиденциальности: CMD + Space , "priv"

  1. Разблокируйте настройки для Полный доступ к диску и откройте меню выбора

  1. В меню выбора нажмите CMD + Shift +. , чтобы показать скрытые файлы, и перейдите к / usr / sbin / cron . (Вы можете проверить расположение исполняемого файла cron , запустив $ which cron в терминале)

]

7
ответ дан 14 April 2020 в 08:29

Теги

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