Гид по технологиям

Как исправить ошибку "zsh: permission denied" в Terminal на Mac

• 4 min read • macOS • Обновлено 30 Nov 2025
Исправить zsh: permission denied на Mac
Исправить zsh: permission denied на Mac

Терминал macOS с открытой консолью

Ошибка “zsh: permission denied” в Terminal на Mac возникает часто и в большинстве случаев решается простыми действиями. В этой статье пошагово разберём проверку команды, исправление прав и владельца, а также добавим практические советы, чек-листы и краткий глоссарий.

Проверьте команду

Первым делом внимательно проверьте команду, которая вызвала ошибку. Типичные причины:

  • опечатка в имени файла или пути;
  • попытка выполнить файл, который не является исполняемым;
  • запуск команды без нужного префикса (например, попытка выполнить скрипт как программу вместо передачи его интерпретатору).

Примеры проверки:

  • Убедитесь, что путь корректен: ls -l /путь/к/файлу
  • Если вы хотите запустить скрипт, можно явно вызвать интерпретатор: sh /путь/к/скрипту.sh или bash /путь/к/скрипту.sh

Разблокируйте файл или папку

Иногда файл помечен как “заблокированный” в Finder. Разблокировать можно в графическом интерфейсе:

  1. Control‑клик на элементе и выберите Сведения (Get Info).
  2. Снимите галочку рядом с Заблокирован (Locked) или аналогичной опцией в русской локализации.

Или через Terminal снимите флаг защиты:

chflags nouchg [путь/к/файлу_или_папке]

Окно «Сведения» для файла в macOS.

Добавьте разрешение на выполнение

Если вы пытаетесь запустить shell-скрипт (.sh) и получаете “permission denied”, скорее всего, файл не имеет бита “execute”. Добавьте его командой:

chmod +x [путь/к/файлу.sh]

Альтернативный вариант, который задаёт более явные права (владелец: чтение/запись/выполнение, группа и остальные: чтение/выполнение):

chmod 755 [путь/к/файлу.sh]

Добавление права на выполнение для SH-файла через Terminal в macOS

После изменения прав ещё раз выполните ls -l, чтобы убедиться, что у файла появился флаг x (например, -rwxr-xr-x).

Измените владельца и группу

Если файл принадлежит другому пользователю, вы получите отказ в доступе. Исправьте владельца и группу так, чтобы они соответствовали вашему учётному запису:

chown -R $USER:$USER [путь/к/файлу_или_папке]

Флаг -R рекурсивно изменяет владельца для всех вложенных файлов и папок. После выполнения проверьте ls -l, чтобы убедиться в корректности.

Когда эти шаги не помогают

Если вышеуказанные команды не устранили проблему, проверьте дополнительные причины:

  • Файловая система смонтирована в режиме «только чтение».
  • На файле установлены расширенные ACL или атрибуты — проверьте с помощью ls -le и xattr -l [путь].
  • Системная защита (System Integrity Protection, SIP) блокирует изменения в системных директориях.
  • Скрипт исполняет команды, требующие повышенных прав — попробуйте запустить с sudo, но только если доверяете коду.

Пример безопасной проверки прав и атрибутов:

ls -l [путь/к/файлу]
ls -le [путь/к/файлу]   # показывает ACL, если есть
xattr -l [путь/к/файлу] # показывает расширенные атрибуты

Важно: не используйте sudo без понимания того, что делает команда. Запуск вредоносного скрипта от root может повредить систему.

Мини‑методология: быстрый план действий

  1. Снова проверьте команду и путь.
  2. ls -l для проверки текущих прав.
  3. Если нужно — chflags nouchg для разблокировки.
  4. chmod +x или chmod 755 для добавления выполнения.
  5. Если владелец неверен — chown -R $USER:$USER.
  6. При сохранении проблемы — проверка ACL (ls -le), xattr и режима монтирования.

Чек‑лист для ролей

  • Для разработчика:

    • Убедиться, что скрипт запускается локально от имени текущего пользователя.
    • Не хранить исполняемые скрипты в защищённых системных папках.
  • Для администратора:

    • Проверить права и владельца, установить политики ACL.
    • Отслеживать случаи frequent permission denied и выяснять причину (скрипты, пакетный деплой, CI).
  • Для новичка / пользователя:

    • Сначала проверьте опечатки и путь.
    • Попросите помощи, если не уверены в использовании sudo или изменении владельца.

Критерии приёмки

  • Команда выполняется без сообщения “zsh: permission denied”.
  • ls -l показывает корректные разрешения и владельца.
  • Скрипт ведёт себя ожидаемо и не требует лишних прав.

Короткий глоссарий

  • chmod — команда для изменения прав доступа к файлу.
  • chown — команда для смены владельца и группы файла.
  • xattr — утилита для просмотра расширенных атрибутов macOS.
  • SIP — System Integrity Protection, системная защита macOS.
  • бит выполнения (x) — флаг, позволяющий запускать файл как программу.

Когда стоит быть осторожным

  • Не изменяйте права в системных директориях без понимания последствий.
  • Не запускайте сторонние скрипты с sudo, если вы не доверяете источнику.
  • При массовом изменении владельцев и прав делайте резервную копию важных данных.

Краткое резюме

Ошибка “zsh: permission denied” чаще всего связана с правами или владельцем файла. Начните с проверки команды и прав (ls -l), добавьте бит выполнения (chmod +x), при необходимости измените владельца (chown). Если проблема остаётся — проверьте ACL, расширенные атрибуты и режим монтирования. Действуйте осторожно при использовании sudo и изменении системных настроек.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро