Linux EACCESСредняя

Ошибка EACCES: разрешение на выполнение crontab отклонено – быстрое решение

Статья объясняет значение ошибки EACCES при работе с crontab, её распространённые причины и предлагает несколько простых способов восстановления доступа.

Обновлено 27 июля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04 LTSDebian 11CentOS 8Fedora 34

Что означает ошибка EACCES

Ошибка EACCES (или «crontab: permission denied») появляется, когда вы пытаетесь отредактировать (crontab -e) или просмотреть (crontab -l) файл планировщика, а система не может прочитать/записать этот файл из-за недостаточных прав. Это типичное сообщение о запрете доступа, которое указывает на проблему с разрешениями, а не на синтаксис или отсутствие команды.

Причины возникновения

  • Попытка редактирования системного файла /etc/crontab без прав root.
  • Недостаточные права на пользовательский файл crontab (обычно /var/spool/cron/<user> или /var/spool/crontabs/<user>).
  • Запуск crontab -e из-под неподтверждённого пользователя в многопользовательской системе.
  • Неправильный umask при создании файла crontab, из-за чего файл становится «скрытым».
  • Повреждённые права на директорию /var/spool/cron/<user> (например, владелец не соответствует пользователю).

Способы решения

Способ 1: Использование sudo для редактирования

  1. Откройте терминал.
  2. Выполните команду sudo crontab -e.
  3. Введите пароль администратора.
  4. Отредактируйте задачи и сохраните изменения.

Этот метод предоставляет необходимые права, обходя проверку разрешений.

Способ 2: Установка правильных прав на файл crontab

  1. Определите путь к вашему crontab‑файлу: crontab -l показывает его местоположение (например, /var/spool/cron/alice).
  2. Выполните chmod 600 <path>, чтобы ограничить доступ только владельцу.
  3. Установите правильного владельца: chown alice:alice <path>.
  4. Убедитесь, что родительская директория (/var/spool/cron) имеет права 755 (chmod 755 /var/spool/cron).

Способ 3: Редактирование системного crontab с root-доступом

  1. Откройте системный файл: sudo nano /etc/crontab.
  2. Добавьте или отредактируйте задачи.
  3. Сохраните изменения и выйдите из редактора (Ctrl+O, Enter, Ctrl+X).

Способ 4: Создать временный crontab-файл и загрузить его

  1. Создайте временный файл, например, temp.cron.
  2. Добавьте необходимые задачи в этот файл.
  3. Загрузите его с помощью crontab temp.cron.
  4. Удалите временный файл: rm temp.cron.

Профилактика

  • Всегда используйте sudo crontab -e, если вам нужны права администратора.
  • Регулярно проверяйте права на /var/spool/cron/<user> с помощью ls -l.
  • Сохраняйте резервные копии crontab: crontab -l > backup.cron.
  • Следите за umask в .bashrc или .profile, чтобы избежать скрытия файлов.

Часто задаваемые вопросы

Почему появляется сообщение «crontab: permission denied»?
Как быстро добавить задачу в crontab с помощью sudo?
Как исправить права на файлы crontab без перезагрузки системы?
Что делать, если ошибка сохраняется после установки прав?

Полезное

Использовать sudo для редактирования crontab
Проверить и исправить права на файл crontab
Редактировать системный crontab (требуется root)
Создать временный crontab-файл и загрузить его

Эта статья помогла вам решить проблему?