Открыть сервисСервис

Access Denied — ошибка отказа в доступе

Access Denied (от англ. «доступ запрещён») — сообщение об ошибке, информирующее пользователя или программный процесс о том, что в доступе к запрашиваемому ресурсу отказано. Ресурсом может быть файл, каталог, веб-страница, база данных, сетевой сервис или аппаратное устройство. Ошибка не является сбоем в строгом смысле: система корректно обработала запрос и вернула отказ в соответствии с заданными правилами доступа.

Происхождение термина

Фраза «access denied» утвердилась в информатике в 1970-е — 1980-е годы вместе с развитием многопользовательских операционных систем и сетевых протоколов. В UNIX-подобных системах аналогом служит сообщение Permission denied, в Windows — «Отказано в доступе» или код ошибки ERROR_ACCESS_DENIED (код 5). В HTTP-протоколе аналогом является статус 403 Forbidden.

Основные причины возникновения

Отказ в доступе может вызываться различными факторами:

  • Недостаток прав пользователя. Наиболее частая причина: учётная запись не обладает правами на чтение, запись или выполнение запрашиваемого объекта.
  • Неверные учётные данные. Неправильный логин, пароль, истёкший или отозванный токен авторизации.
  • Ограничения файловой системы. В UNIX-правах доступа (chmod) объект может быть закрыт для группы или для «прочих» (others).
  • Политики безопасности. Брандмауэр, система обнаружения вторжений или групповая политика Windows могут блокировать обращение.
  • Географические и юридические ограничения. Сервер может запрещать доступ с определённых IP-адресов, из отдельных стран или регионов.
  • Ограничения аккаунта. Платная подписка, превышение квоты запросов, блокировка администратором.

Access Denied в операционных системах

Windows

В Windows отказ в доступе формируется подсистемой безопасности и возвращается приложению как код ERROR_ACCESS_DENIED. При попытке открыть защищённый файл проводник отображает диалог «Отказано в доступе». Причиной может быть ACL (список управления доступом), наследуемый от родительского каталога, или защита системных файлов (Windows Resource Protection). Обход блокировки возможен только при наличии прав администратора и явном изменении владельца объекта.

Linux и UNIX

В UNIX-системах права определяются тройкой символов для владельца, группы и остальных пользователей (например, chmod 644). При обращении к файлу с недостаточными правами ядро возвращает код ошибки EACCES, а shell выводит bash: file: Permission denied. Суперпользователь (root) не подвержен этим ограничениям, что является источником известного высказывания «root не знает отказа».

Access Denied в вебе

В HTTP-протоколе отказ в доступе передаётся через статус-код 403 Forbidden. Сервер понимает запрос, но отказывается его выполнять. Типичные причины: отсутствие авторизации, неверный HMAC-подписанный URL, запрет по IP, отсутствие файла index.html в каталоге при запрещённом листинге.

Код 403 часто путают с 401 Unauthorized. Разница заключается в том, что 401 означает «необходима авторизация» и сопровождается заголовком WWW-Authenticate, а 403 — «авторизация не поможет, доступ запрещён в принципе».

Веб-серверы настраивают формат ответа индивидуально. Nginx по умолчанию отдаёт страницу 403 Forbidden, Apache — 403 Forbidden со стандартной страницей ошибки. Крупные платформы (Google, Яндекс, социальные сети) формируют собственные страницы отказа, иногда с капчей для борьбы с ботами.

Access Denied в программной разработке

В языках программирования отказ в доступе обычно передаётся исключениями:

Язык/платформаИсключение или код
Javajava.security.AccessControlException, SecurityException
C# / .NETSystem.UnauthorizedAccessException
PythonPermissionError (подкласс OSError)
Node.jsError: EACCES: permission denied
POSIX Cerrno == EACCES

Разработчики обязаны обрабатывать эти ошибки, чтобы приложение не падало при попытке записи в защищённый каталог или чтения системного файла.

Способы устранения

Для пользователя типичные действия включают:

  1. Проверку прав на объект (в Windows — вкладка «Безопасность», в Linux — команда ls -l).
  2. Запуск программы от имени администратора или под учётной записью с достаточными правами.
  3. Проверку введённых учётных данных и срока действия токена.
  4. Обращение к администратору ресурса для выдачи разрешений.

См. также

  • HTTP 403 Forbidden
  • Контроль доступа
  • Модель Bell — Лападулы
  • Контрольные списки доступа

Историческое примечание

В ранних мейнфреймах IBM отказ в доступе передавался через коды ABEND (abnormal end), а терминология «access denied» закрепилась позже, с распространением персональных компьютеров и локальных сетей. В русскоязычной документации Windows 95/98 использовался перевод «Доступ запрещён», который с тех пор стал устойчивым эквивалентом.

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru