Ошибка permission denied переводится на русский как «в доступе отказано» или «доступ запрещён» — она появляется в терминале Linux, при работе с файлами в Windows, на Android и в средах разработки, когда у пользователя или процесса нет прав на выполнение действия. Если вы увидели эту надпись при запуске скрипта, копировании файла или установке программы, система прямо сообщает: операция заблокирована механизмом разграничения прав, а не сбоем оборудования.
Дословно фраза состоит из двух слов: permission — «разрешение», и denied — «отказано, запрещено». В русскоязычных версиях систем вы можете встретить варианты «Отказано в доступе», «Нет разрешения» или «Доступ запрещён» — все они означают одну и ту же ситуацию. Ниже разберём, почему возникает ошибка и как её устранить в разных средах.
Что означает ошибка и где она встречается
Сообщение permission denied — это стандартный ответ операционной системы, когда процесс пытается прочитать, изменить или запустить объект, на который у него нет соответствующих прав. Механизм встроен в Linux, macOS, Windows и Android и служит защитой от случайных или вредоносных действий.
Типичные ситуации, где вы можете столкнуться с этой ошибкой:
- 🖥️ запуск скрипта или программы в терминале Linux без права на исполнение;
- 📁 попытка записи в системную папку, например
/etcили/usr, от обычного пользователя; - 📱 обращение приложения Android к защищённым данным без выданного разрешения;
- 💻 удаление или изменение файла в Windows, который занят другим процессом или принадлежит администратору;
- 🔑 подключение по SSH с неверным ключом или неправильными правами на файл ключа.
Понимание перевода — «доступ запрещён» — сразу сужает поиск: проблема не в самом файле или программе, а в правах доступа к нему.
Ошибка в Linux: причины и диагностика
В Linux права на файл делятся на три категории: чтение (r), запись (w) и выполнение (x). Они назначаются отдельно для владельца, группы и всех остальных. Если нужного права нет — система отвечает permission denied.
Первым шагом посмотрите текущие права на файл:
ls -l имя_файла
В выводе вы увидите строку вида -rw-r--r--: здесь видно, кому и что разрешено. Если при запуске скрипта появляется ошибка, но в правах отсутствует флаг x — это и есть причина.
⚠️ Внимание: не назначайте массово права chmod 777 «чтобы заработало». Такой режим открывает файл на изменение и запуск всем пользователям системы, что создаёт реальную уязвимость. Давайте только те права, которые действительно нужны.
Как исправить permission denied в терминале
Последовательность действий зависит от того, что именно вы пытаетесь сделать. Ниже — безопасный порядок проверки, который подходит для большинства случаев.
☑️ Диагностика permission denied в Linux
Если нужно запустить скрипт, добавьте право на исполнение:
chmod +x script.sh
./script.sh
Когда файл принадлежит root, а работать с ним нужно вам, есть два пути: выполнить команду через sudo или сменить владельца файла командой chown. Первый вариант безопаснее для разовых операций, второй удобен, если с файлом работают постоянно.
⚠️ Внимание: команды с sudo выполняются с правами администратора и могут изменить системные файлы. Перед запуском проверьте, что команда относится именно к тому файлу, который вы хотите изменить, — отменить действие может быть сложно.
Permission denied в Windows и Android
В Windows аналогичное сообщение выглядит как «Отказано в доступе» и появляется при изменении файлов в защищённых папках — например, в Program Files или системном каталоге. Обычно помогает запуск программы от имени администратора через контекстное меню. Если файл заблокирован другим процессом, сначала завершите его через диспетчер задач.
На Android ошибка чаще встречается разработчикам при работе с ADB или при доступе приложения к хранилищу. Обычному пользователю достаточно проверить, выданы ли приложению нужные разрешения в настройках системы: откройте параметры приложения и посмотрите раздел «Разрешения». Точные названия пунктов меню зависят от версии Android и оболочки производителя.
| Среда | Типичная причина | Основное решение |
|---|---|---|
| Linux, запуск скрипта | Нет права на исполнение | chmod +x |
| Linux, системный файл | Файл принадлежит root | sudo или chown |
| Windows | Защищённая папка | Запуск от имени администратора |
| Android | Не выдано разрешение приложению | Проверить разрешения в настройках |
| SSH | Слишком открытые права на ключ | chmod 600 для приватного ключа |
Ошибка при подключении по SSH
Отдельный случай — сообщение Permission denied (publickey) при подключении к серверу. Здесь отказ происходит на этапе аутентификации: сервер не принял ваш ключ. Проверьте три вещи: указан ли правильный файл ключа в команде подключения, добавлен ли ваш публичный ключ на сервер и какие права установлены на приватный ключ локально.
Права на приватный ключ должны быть строго ограничены — иначе SSH-клиент откажется его использовать. Исправить это можно так:
chmod 600 ~/.ssh/id_rsa
Почему SSH отклоняет ключ с «слишком открытыми» правами
Если приватный ключ доступен для чтения другим пользователям системы, SSH-клиент считает его скомпрометированным и игнорирует. Это встроенная защита: ограничьте доступ командой chmod 600, после чего подключение снова заработает, если сам ключ верный.
Когда ничего не помогает
Если права выставлены корректно, а ошибка остаётся, возможны более глубокие причины. В Linux это могут быть атрибуты файла, установленные через chattr (например, флаг неизменяемости), политики SELinux или AppArmor, либо файловая система, смонтированная в режиме «только чтение». Каждый из этих случаев требует отдельной диагностики — проверяйте их по одному, начиная с самого простого.
В корпоративной среде или на чужом сервере права может ограничивать администратор. Тогда корректный путь — запросить нужный доступ, а не искать обходные варианты: попытки обойти ограничения могут нарушать политику безопасности организации.
Частые вопросы
Как переводится permission denied на русский язык?
Дословно — «в разрешении отказано». В русских версиях систем используются формулировки «Отказано в доступе» и «Доступ запрещён». Все варианты означают, что у пользователя или процесса нет прав на запрошенное действие.
Чем permission denied отличается от ошибки «file not found»?
«File not found» означает, что файл не существует по указанному пути. Permission denied говорит об обратном: файл есть, но система запрещает к нему обращаться из-за отсутствия прав.
Безопасно ли использовать chmod 777 для исправления ошибки?
Нет, это небезопасная практика. Права 777 разрешают чтение, запись и выполнение всем пользователям, что открывает файл для изменения кем угодно. Назначайте минимально необходимые права — например, chmod +x только для запуска скрипта.
Почему sudo не помогает убрать permission denied?
Возможные причины: файловая система смонтирована в режиме только для чтения, на файл установлен атрибут неизменяемости через chattr, либо действие блокируют политики SELinux/AppArmor. Проверяйте эти варианты по очереди.
Что делать с ошибкой permission denied на Android?
Обычному пользователю достаточно проверить разрешения приложения в настройках системы и выдать нужные. Если ошибка возникает при работе с ADB — убедитесь, что отладка по USB включена и компьютер авторизован на устройстве.