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

Исправление ошибки «zsh: permission denied» в Terminal на macOS

5 min read macOS Обновлено 07 Jan 2026
Исправить zsh: permission denied на macOS
Исправить zsh: permission denied на macOS

Почему возникает ошибка

Ошибка «zsh: permission denied» означает, что текущий пользователь или оболочка Zsh не имеют прав на выполнение или доступ к файлу/папке, либо к ресурсу препятствует системная защита. Коротко: у вас либо нет нужных прав, либо объект заблокирован или защищён системой.

Ключевые причины:

  • Неправильная команда или опечатка в пути.
  • У файла не выставлен бит выполнения (execute).
  • Неправильный владелец или группа (ownership).
  • Файл заблокирован в Finder или помечен атрибутами (xattr).
  • System Integrity Protection (SIP) или монтирование в режиме только для чтения.
  • Скрипт имеет неверный шебанг (shebang) или ожидает другую оболочку.

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

Всегда начните с простого: дважды проверьте команду и путь к файлу. Часто ошибка — опечатка в имени файла или в каталоге.

Пример ошибок:

  • ./script.sh вместо ./scripts.sh
  • Пробелы/спецсимволы в имени без экранирования

Если вы не уверены, используйте tab-completion или ls для проверки:

ls -l /путь/к/файлу

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

Если объект помечен как заблокированный в Finder, откройте контекстное меню (Control‑клик) → Получить информацию (Get Info) и снимите галочку «Locked». Это убирает флаг блокировки для GUI-версии файла.

Экран Terminal Mac

ALT: Экран Mac с открытым Terminal и курсором в командной строке

Разблокировка через Terminal

Если вы предпочитаете Terminal, удалите флаг пользовательской блокировки:

chflags nouchg /путь/к/файлу

Для каталога и его содержимого добавьте -R:

chflags -R nouchg /путь/к/папке

Добавьте право на выполнение (execute)

Если вы пытаетесь запустить shell-скрипт (.sh) или бинарный файл, убедитесь, что у него есть бит выполнения.

Примеры команд:

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

Разница: chmod +x добавляет право выполнения к существующим правам; chmod 755 устанавливает права rwxr-xr-x (владелец — чтение/запись/выполнение, группа и остальные — чтение/выполнение).

Проверьте права:

ls -l /путь/к/файлу.sh
# пример вывода: -rwxr-xr-x  1 username  staff  1234 Jan  1 12:00 file.sh

Важно: избегайте chmod 777 — это даёт полный доступ всем и повышает риск безопасности.

Добавление прав выполнения в Terminal

ALT: Окно Terminal с командами chmod и ls, показывающими права файла

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

Иногда файл принадлежит другому пользователю. Присвойте владельцем себя (замените $USER вашим логином, если нужно):

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

Опция -R рекурсивно меняет владельца для папки и её содержимого. sudo требуется, если вы не являетесь владельцем и не имеете прав на изменение.

Дополнительные проверки и альтернативные подходы

  1. Запустить с sudo (только если доверяете коду):
sudo /путь/к/исполняемому_файлу
  1. Запустить через конкретную оболочку:
bash /путь/к/скрипту.sh
sh /путь/к/скрипту.sh
  1. Снять атрибут кворентайна (иногда файл загружен из интернета):
xattr -d com.apple.quarantine /путь/к/файлу
  1. Проверить зашифрованный или смонтированный только для чтения диск — нельзя изменить права на read-only.

  2. Если ошибка при попытке доступа к системным ресурсам, учтите System Integrity Protection (SIP). SIP защищает системные каталоги и запрещает изменения даже с sudo.

Модель мышления: как думать о правах Unix

Короткая шпаргалка:

  • Владелец (owner): пользователь, которому принадлежит файл.
  • Группа (group): набор пользователей с общими правами.
  • Остальные (others): все прочие.
  • Биты rwx: read=4, write=2, execute=1. Комбинации дают число, например 7 (4+2+1).
  • Для директорий execute означает право заходить в каталог.

Эта модель помогает понять, какие команды применять: chmod меняет права, chown — владельца, chflags/xattr — системные флаги.

Быстрый план действий (Playbook)

  1. Проверьте команду и путь (ls, tab).
  2. Посмотрите права: ls -l /путь.
  3. Если нет x — chmod +x /путь.
  4. Если владелец другой — sudo chown -R $USER:$USER /путь.
  5. Если файл заблокирован — chflags nouchg /путь и xattr -d com.apple.quarantine /путь.
  6. Если всё ещё не работает — проверьте, не защищён ли путь SIP, и не монтирован ли диск в режиме read-only.

Командная шпаргалка

ls -l /путь            # показать права и владельца
chmod +x file.sh       # добавить бит выполнения
chmod 755 file.sh      # установить rwxr-xr-x
sudo chown -R $USER:$USER /путь  # изменить владельца и группу
chflags nouchg /путь   # снять флаг Locked
xattr -l /путь         # показать расширенные атрибуты
xattr -d com.apple.quarantine /путь  # удалить quarantine

Когда перечисленные шаги не помогают

  • Файл расположен в защищённом системном каталоге (SIP). Решение: не пытайтесь изменять системные файлы; вместо этого помещайте свои скрипты в /usr/local/bin или ~/bin.
  • Файловая система смонтирована как read-only (например, ISO-образ, некоторые сетевые ресурсы).
  • Скрипт исполняет команды, требующие дополнительных прав (например, доступ к аппаратуре) — тогда нужен sudo или другая привилегия.
  • Исполняемый файл повреждён или несовместим с вашей архитектурой (например, бинарник для другой ОС).

Роль‑ориентированные чек-листы

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

  • Убедиться, что shebang корректен (например, #!/usr/bin/env bash).
  • Проверить права и владельца.
  • Тестировать запуск через bash/sh.

Для администратора:

  • Проверить монтирование, права на каталоги, NFS/SMB-права.
  • Проверить ACL и расширенные атрибуты (xattr).

Для начинающего:

  • Начать с ls -l и chmod +x, затем спросить в сообществе с результатами ls -l.

Диагностическое дерево принятия решения

flowchart TD
  A[Ошибка: zsh: permission denied] --> B{Файл/путь верны?}
  B -- Нет --> C[Исправьте путь/имя]
  B -- Да --> D{Есть бит выполнения?}
  D -- Нет --> E[chmod +x /путь]
  D -- Да --> F{Вы владелец?}
  F -- Нет --> G[sudo chown -R $USER:$USER /путь]
  F -- Да --> H{Файл заблокирован или помечен?}
  H -- Да --> I[chflags nouchg; xattr -d com.apple.quarantine]
  H -- Нет --> J{Файловая система или SIP?}
  J -- Да --> K[Проверить монтирование/SIP и действовать осторожно]
  J -- Нет --> L[Запустить через bash/sh или с sudo]

Вопросы и ответы

Как временно запустить файл без изменения прав?

Вы можете запустить скрипт через оболочку: bash /путь/к/скрипту.sh или sh /путь/к/скрипту.sh.

Можно ли использовать chmod 777 для быстрого решения?

Технически — да, это даст доступ, но это плохая практика с точки зрения безопасности. Используйте минимально необходимые права.

Почему chmod +x не решает проблему?

Потому что проблема может быть в владельце, расширенных атрибутах, монтировании или SIP. Проверьте chown, xattr и статус монтирования.

Окно свойства файла macOS

ALT: Диалог «Получить информацию» файла в macOS с опцией Locked и разделом прав доступа

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

Ошибка «zsh: permission denied» обычно решается простыми действиями: проверьте путь, добавьте бит выполнения (chmod), измените владельца (chown) или снимите флаги блокировки (chflags/xattr). Если всё это не помогает — проверьте системные защиты (SIP), режим монтирования и совместимость бинарника.

Важно: не предоставляйте избыточные права (например, chmod 777) без необходимости и не изменяйте системные файлы вручную.


Краткое объявление для команды (100–200 слов):

Если вы заметили «zsh: permission denied» при работе в macOS Terminal, следуйте короткому чек‑листу: 1) проверьте команду и путь; 2) выполните ls -l; 3) добавьте chmod +x при необходимости; 4) смените владельца через sudo chown -R $USER:$USER; 5) снимите флаги chflags/xattr. Если и после этого проблема остаётся — проверьте, не мешает ли System Integrity Protection или режим монтирования. Эти шаги безопасны и решают большинство распространённых ситуаций.

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

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство