
Если команда su завершается с ошибкой аутентификации, первым делом проверьте правильность пароля. Введите его вручную, а не копируйте – даже невидимые символы могут вызвать сбой. Убедитесь, что пользователь существует в системе и имеет право на повышение привилегий через /etc/pam.d/su или /etc/security/access.conf.
Распространённая причина – блокировка учётной записи после нескольких неудачных попыток. Проверьте журналы /var/log/auth.log или /var/log/secure на записи типа «authentication failure». Если проблема сохраняется, временно отключите ограничения в /etc/pam.d/system-auth, закомментировав строки с pam_tally2.so.
Для систем с SELinux добавьте контекст безопасности su_exec_t к исполняемому файлу. Выполните restorecon -v /bin/su и перезапустите службу auditd. В случае ошибок NSS (например, «user unknown») обновите базы данных командой getent passwd и проверьте корректность /etc/nsswitch.conf.
- Su сбой при проверке подлинности: причины и решение
- Основные причины сбоя
- Как исправить
- Основные симптомы сбоя при проверке подлинности su
- 1. Ошибки ввода пароля
- 2. Отсутствие доступа к файлам аутентификации
- 3. Блокировка учётной записи
- Распространённые причины ошибок аутентификации в su
- Проверка корректности файлов конфигурации PAM
- Настройка прав доступа к файлу /etc/pam.d/su
- Почему это важно
- Дополнительные проверки
- Исправление ошибок, связанных с отсутствием группы wheel
- Действия при блокировке учётной записи root
Su сбой при проверке подлинности: причины и решение
Если команда su завершается ошибкой аутентификации, проверьте правильность ввода пароля. Убедитесь, что Caps Lock выключен и раскладка клавиатуры верна.
Основные причины сбоя
1. Неправильный пароль: Убедитесь, что вводите пароль root или целевого пользователя без опечаток. В отличие от графического интерфейса, терминал не показывает символы при вводе.
2. Отсутствие прав root: Пользователь может не входить в группу wheel (в системах на базе RHEL) или sudo (в Debian/Ubuntu). Проверьте членство командой:
groups ваш_пользователь
Как исправить
Добавьте пользователя в группу sudo/wheel:
Выполните от root:
usermod -aG sudo ваш_пользователь (для Debian/Ubuntu)
usermod -aG wheel ваш_пользователь (для RHEL/CentOS)
Проверьте файл /etc/pam.d/su:
Убедитесь, что строка auth required pam_wheel.so закомментирована или содержит параметр trust. Изменения требуют прав root.
Сбросьте пароль root:
Если пароль утерян, загрузитесь в режиме восстановления и выполните:
passwd root
Основные симптомы сбоя при проверке подлинности su
Если команда su завершается с ошибкой, проверьте следующие симптомы, чтобы точнее определить причину.
1. Ошибки ввода пароля
Система не принимает корректный пароль, даже если он верный. Это может сопровождаться сообщениями типа Authentication failure или su: Permission denied. Убедитесь, что Caps Lock выключен и раскладка клавиатуры правильная.
2. Отсутствие доступа к файлам аутентификации
Команда su требует доступа к /etc/pam.d/su, /etc/shadow и другим системным файлам. Если права доступа нарушены, появится ошибка su: cannot open session или su: Authentication service cannot retrieve authentication info.
Проверьте права на эти файлы командой:
ls -l /etc/pam.d/su /etc/shadow
Файл /etc/shadow должен быть доступен только root, а /etc/pam.d/su – с правами 644.
3. Блокировка учётной записи

После нескольких неудачных попыток система может временно заблокировать пользователя. В этом случае появится сообщение Account locked due to X failed attempts. Разблокируйте учётную запись через passwd -u username или сбросьте таймеры в /etc/pam.d/system-auth.
Если ошибка сохраняется, проверьте журналы /var/log/auth.log или /var/log/secure – там могут быть подробности сбоя.
Распространённые причины ошибок аутентификации в su
Проверьте, правильно ли введён пароль. Ошибки часто возникают из-за опечаток, особенно если используется сложная комбинация символов. Убедитесь, что Caps Lock выключен, а раскладка клавиатуры правильная.
Убедитесь, что пользователь существует в системе. Команда su требует указания существующего имени учётной записи. Проверьте список пользователей командой cat /etc/passwd | grep "имя_пользователя".
Права доступа могут блокировать аутентификацию. Если пользователь не входит в группу wheel или sudo, система отклонит запрос. Добавьте пользователя в нужную группу командой usermod -aG wheel имя_пользователя.
Конфигурация PAM иногда ограничивает доступ. Проверьте файл /etc/pam.d/su – если там есть строка auth required pam_wheel.so, только члены группы wheel смогут переключиться на root.
Пароль root может быть заблокирован. В некоторых дистрибутивах по умолчанию отключена аутентификация по паролю для root. Разблокируйте её командой passwd root или используйте sudo вместо su.
Неправильные настройки /etc/shadow приводят к ошибкам. Если у пользователя истёк срок действия пароля или учётная запись заблокирована, исправьте это командой passwd -u имя_пользователя.
Проблемы с SELinux или AppArmor могут мешать аутентификации. Проверьте журналы (/var/log/secure или /var/log/auth.log) на наличие сообщений о блокировке.
Проверка корректности файлов конфигурации PAM

Откройте файлы PAM в /etc/pam.d/ и убедитесь, что синтаксис каждой строки соответствует формату: тип_контроля модуль аргументы. Ошибки в структуре приводят к сбоям аутентификации.
Проверьте, что модули, указанные в конфигурации, существуют в системе. Выполните команду для поиска файлов:
find /lib* /usr/lib* -name "pam_*.so"
Распространённые ошибки в файлах PAM:
| Ошибка | Как исправить |
|---|---|
| Лишние пробелы или табуляции | Удалите лишние символы, оставив один пробел между элементами |
| Несуществующие модули | Установите недостающий пакет (например, libpam-cracklib) |
| Некорректные типы контроля | Замените на допустимые: required, requisite, sufficient, optional |
Протестируйте конфигурацию с помощью утилиты pam-auth-update. Она покажет конфликты между модулями и предложит варианты исправления.
Для проверки конкретного сервиса используйте команду:
pamtester сервис пользователь authenticate
Если изменения в PAM приводят к блокировке входа, загрузитесь в аварийном режиме и восстановите резервную копию файлов из /etc/pam.d/.
Настройка прав доступа к файлу /etc/pam.d/su
Установите права 644 для файла /etc/pam.d/su, чтобы ограничить запись для всех, кроме владельца:
sudo chmod 644 /etc/pam.d/su
Проверьте владельца файла – им должен быть root. Если это не так, исправьте командой:
sudo chown root:root /etc/pam.d/su
Почему это важно
Файл /etc/pam.d/su управляет аутентификацией при выполнении команды su. Неправильные права могут привести к:
- Несанкционированному изменению правил аутентификации.
- Обходу ограничений для перехода в учетную запись root.
- Ошибкам при проверке подлинности.
Дополнительные проверки
Убедитесь, что файл не имеет расширенных атрибутов, позволяющих обойти ограничения:
lsattr /etc/pam.d/su
sudo chattr -i /etc/pam.d/su
Исправление ошибок, связанных с отсутствием группы wheel
Если команда su выдает ошибку из-за отсутствия группы wheel, добавьте пользователя в эту группу. В большинстве Linux-дистрибутивов группа wheel дает права на выполнение административных команд.
Проверьте, существует ли группа в системе:
grep wheel /etc/group
groupadd wheel
Добавьте нужного пользователя в группу:
usermod -aG wheel имя_пользователя
Убедитесь, что файл /etc/pam.d/su или /etc/pam.d/sudo содержит строку, разрешающую доступ для группы wheel:
auth required pam_wheel.so use_uid
После внесения изменений перезагрузите систему или выйдите и зайдите заново, чтобы изменения вступили в силу.
Действия при блокировке учётной записи root
Если учётная запись root заблокирована, войдите в систему через другого пользователя с правами sudo. Выполните команду sudo passwd root, чтобы сбросить пароль.
Проверьте файл /etc/shadow на наличие блокировки. Если в строке root стоит восклицательный знак (! или *), удалите его с помощью sudo usermod -U root.
Если система использует PAM, отредактируйте файл /etc/pam.d/su или /etc/pam.d/common-auth. Уберите или закомментируйте строки с pam_tally2.so или pam_faillock.so, если они блокируют root.
Для временного доступа загрузитесь в режиме recovery mode. Нажмите e в меню загрузчика, найдите строку с linux, добавьте init=/bin/bash в конец, затем нажмите Ctrl+X. После загрузки выполните mount -o remount,rw / и смените пароль через passwd root.
Если блокировка вызвана SELinux, проверьте контекст безопасности файлов /etc/shadow и /etc/passwd командой ls -Z. Восстановите контекст через restorecon -v /etc/shadow /etc/passwd.







