macOS zshСредняя

Исправляем ошибку Permission denied в Zsh на macOS быстро и просто

Статья объясняет, что означает ошибка Permission denied в Zsh, почему она возникает и как быстро её устранить с помощью проверенных команд.

Обновлено 14 июля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:macOS Ventura 13macOS Sonoma 14

Что означает ошибка Zsh Permission denied

Сообщение zsh: permission denied появляется, когда вы пытаетесь запустить команду или скрипт, но Zsh не может его выполнить из-за отсутствия прав доступа. Чаще всего это происходит с исполняемыми файлами, которые не имеют флага «executable» (x), или с системными утилитами, доступными только для администратора.

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

  • Отсутствие флага выполнения у скрипта (chmod +x filename).
  • Неправильные права доступа (например, владелец не является текущим пользователем и не предоставлены права).
  • Скачанный из ненадёжных источников скрипт, который macOS блокирует по соображениям безопасности.
  • Неправильная конфигурация оболочки (~/.zshrc ссылается на несуществующие или защищённые файлы).
  • Отсутствие sudo-пароля для команд, требующих прав администратора.
  • Повреждённые файлы Zsh или конфликт с установленной версией (например, системная Zsh не обновлялась после установки Homebrew).

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

Способ 1: Установить флаг выполнения

  1. Откройте Терминал.
  2. Перейдите к каталогу с проблемным скриптом:
    cd /path/to/script
    
  3. Проверьте текущие права:
    ls -l myscript.sh
    
  4. Если права не содержат x, выполните:
    chmod +x myscript.sh
    
  5. Запустите скрипт повторно:
    ./myscript.sh
    

Способ 2: Добавить sudo для административных команд

  1. Убедитесь, что вам известен пароль администратора.
  2. Добавьте sudo перед командой:
    sudo ./myscript.sh
    
  3. Введите пароль администратора, когда будет запрошен ввод.

Способ 3: Проверить и исправить конфигурацию Zsh

  1. Откройте файл конфигурации:
    nano ~/.zshrc
    
  2. Проверьте наличие следующих конструкций:
    • Неправильные пути в alias или source.
    • Команды, ссылающиеся на несуществующие бинарники (например, source /usr/local/bin/bash вместо source /bin/zsh).
  3. Сохраните изменения (Ctrl+O, Enter) и выйдите (Ctrl+X).
  4. Перезапустите оболочку:
    exec zsh
    

Способ 4: Переустановить Zsh через Homebrew

  1. Удалите старую версию Zsh:
    brew uninstall zsh
    
  2. Установите последнюю версию:
    brew install zsh
    
  3. Установите новую оболочку по умолчанию:
    chsh -s $(which zsh)
    
  4. Перезапустите терминал.

Способ 5: Сбросить файл .zshrc до исходного состояния

  1. Сделайте резервную копию:
    cp ~/.zshrc ~/.zshrc.backup
    
  2. Удалите пользовательские настройки:
    cat > ~/.zshrc << 'EOF'
    # Стандартный файл инициализации Zsh
    ZSH_THEME="default"
    source /usr/local/etc/zshrc
    EOF
    
  3. Перезапустите Zsh:
    exec zsh
    

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

  • Регулярно проверяйте права на важные скрипты с помощью ls -l.
  • Используйте chmod +x сразу после создания или редактирования скрипта.
  • Скачивайте скрипты только из надёжных источников и проверяйте их с помощью shasum или codesign.
  • Обновляйте Zsh и Homebrew для получения исправлений и улучшений безопасности.
  • Ведите журнал запускаемых команд (zsh -x), чтобы отслеживать неожиданные ошибки доступа.
  • Избегайте копирования конфигурационных файлов из сторонних источников; используйте оригинальные шаблоны от Apple или Homebrew.

Соблюдая эти советы, вы минимизируете риск появления ошибки zsh: permission denied в будущем.

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

Что означает сообщение «zsh: permission denied»?
Почему Zsh выдает ошибку доступа?
Можно ли обойти ограничение с помощью sudo?
Как предотвратить повторение ошибки?

Полезное

Проверить права на исполняемый файл
Добавить флаг выполнения
Выполнить скрипт с sudo (если нужно)
Проверить конфигурацию Zsh
Переустановить Zsh (в крайнем случае)
Запустить скрипт повторно

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