| Предыдущий | Следующий |
| ELIBBAD | ENOTUNIQ |
EAUTH
EAUTH — ошибка Darwin errno, означающая сбой этапа аутентификации. Это не общий синоним отказа в доступе к файловой системе. В определении BSD код исторически применялся для недействительного билета аутентификации при монтировании NFS; современная документация Apple также использует EAUTH, когда не удалось аутентифицировать контейнер файловой системы.
Код сообщает, что компонент достиг границы аутентификации и отклонил имеющийся аутентификатор. Сам по себе он не определяет формат учётных данных или протокол: ошибочный API может обрабатывать учётные данные NFS, разблокировку файловой системы с участием пользователя или другой обмен аутентификацией, специфичный для компонента. Поэтому частью значения ошибки являются операция, поставщик, объект и предыдущее состояние аутентификации.
Отличие от отсутствующего аутентификатора
ENEEDAUTHозначает, что до продолжения операции требуется аутентификатор.EAUTHозначает, что попытка аутентификации завершилась ошибкой; повторять тот же запрос без изменения этого состояния бесполезно.EACCESобычно описывает решение о доступе. Этот код не подтверждает, что обмен аутентификацией вообще выполнялся или был отклонён.
Данные, делающие ошибку пригодной для анализа
- Запишите вызов API или фреймворка, открываемый или монтируемый ресурс и поставщика идентификации или учётных данных, выбранного для операции. Не записывайте секреты, билеты, токены и пароли.
- Сохраните предыдущий статус, инициировавший аутентификацию, и статус, возвращённый аутентификатором. Иначе общая ошибка оболочки может скрыть, произошёл ли сбой до запроса, во время проверки или после валидации.
- Для сетевой файловой системы запишите сервер, экспорт, параметры монтирования, версию протокола и время клиента. Эти сведения позволяют отличить недействительное или истёкшее состояние аутентификации от проблемы пространства имён, транспорта или разрешений.
- Если API поддерживает интерактивный и неинтерактивный режимы, проверьте, какой режим запросила вызывающая сторона. Фоновая операция, не способная показать интерфейс аутентификации, может завершиться ошибкой, хотя интерактивный запуск успешен.
Ссылки
- Apple XNU: определения errno Darwin
- Apple FSKit: состояния контейнеров и ошибки аутентификации
- Apple: использование констант errno в Swift
- Руководство BSD по errno: историческая семантика EAUTH и ENEEDAUTH
Нужно найти другой код? Найти другой код состояния или ошибки.