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

Ошибка “zsh: permission denied” в Terminal на Mac возникает часто и в большинстве случаев решается простыми действиями. В этой статье пошагово разберём проверку команды, исправление прав и владельца, а также добавим практические советы, чек-листы и краткий глоссарий.
Проверьте команду
Первым делом внимательно проверьте команду, которая вызвала ошибку. Типичные причины:
- опечатка в имени файла или пути;
- попытка выполнить файл, который не является исполняемым;
- запуск команды без нужного префикса (например, попытка выполнить скрипт как программу вместо передачи его интерпретатору).
Примеры проверки:
- Убедитесь, что путь корректен: ls -l /путь/к/файлу
- Если вы хотите запустить скрипт, можно явно вызвать интерпретатор: sh /путь/к/скрипту.sh или bash /путь/к/скрипту.sh
Разблокируйте файл или папку
Иногда файл помечен как “заблокированный” в Finder. Разблокировать можно в графическом интерфейсе:
- Control‑клик на элементе и выберите Сведения (Get Info).
- Снимите галочку рядом с Заблокирован (Locked) или аналогичной опцией в русской локализации.
Или через Terminal снимите флаг защиты:
chflags nouchg [путь/к/файлу_или_папке]Добавьте разрешение на выполнение
Если вы пытаетесь запустить shell-скрипт (.sh) и получаете “permission denied”, скорее всего, файл не имеет бита “execute”. Добавьте его командой:
chmod +x [путь/к/файлу.sh]Альтернативный вариант, который задаёт более явные права (владелец: чтение/запись/выполнение, группа и остальные: чтение/выполнение):
chmod 755 [путь/к/файлу.sh]После изменения прав ещё раз выполните 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 может повредить систему.
Мини‑методология: быстрый план действий
- Снова проверьте команду и путь.
- ls -l для проверки текущих прав.
- Если нужно — chflags nouchg для разблокировки.
- chmod +x или chmod 755 для добавления выполнения.
- Если владелец неверен — chown -R $USER:$USER.
- При сохранении проблемы — проверка 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 и изменении системных настроек.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента