su -l root разрешение отклонено

Вопрос или проблема

У меня есть centos7 как виртуальная машина на Windows 7. Помимо root, я создал другого пользователя “john” в то время. Некоторое время спустя я забыл пароль root и восстановил его, перейдя в однопользовательский режим. С тех пор, когда я вхожу как “john”, я не могу выполнить su -l root. Я получаю permission denied. Я вошел как root и изменил файл sudoer следующим образом:

root ALL=(ALL) ALL
admin ALL=/bin/su
Defaults: admin rootpw
john ALL=(ALL) ALL

Затем я добавил john в группу wheel и обновил /etc/pam.d/su с:

auth required pam_wheel.so use_uid

Также я не могу выполнить su -l john, когда я вхожу как “root”.
Любая помощь будет оценена.

/var/log/secure показывает:

Mar 6 .... localhost su: PAM(other) no module name supplied
Mar 6 .....localhost su: PAM(other) illegal module type: @include
Mar 6 .....localhost su: PAM pam_parse: expecting return value: [...common-session]

Manny

Похоже, у вас может быть некоторая неправильная конфигурация в PAM. Проверьте /etc/pam.d на предмет недавних изменений. Для быстрой проверки вы можете сделать что-то вроде этого:

for i in /etc/pam.d/* ; do rpm -qf $i; done | sort -u | sed -e 's/-[0-9]*.*//' | while read p; do echo "Verrifing package $p"; rpm -V $p ; done

Это в основном напечатает все пакеты, которым принадлежат файлы в /etc/pam.d. Далее я использую sed, чтобы убрать маркеры версий из них, а в конце я использую rpm -V, который сравнивает файлы на диске с теми, что в пакетах rpm.

Если будет обнаружено какое-либо изменение, оно будет напечатано на экране в форме:

S.5....T.  c /etc/pam.d/su-l

Значение флагов следующее (man rpm)

S Размер файла отличается
M Режим отличается (включает разрешения и тип файла)
5 контрольная сумма (ранее MD5) отличается
D Mismatch major/minor номер устройства
L readLink(2) несовпадение пути
U Владение пользователем отличается
G Владение группой отличается
T Время изменения отличается
P Способности отличаются

Если вы найдете измененные файлы, вы можете изучить их, чтобы проверить, сделаны ли изменения вами и есть ли ошибки. Возможно, вам захочется переместить проблемный конфигурационный файл и переустановить пакет, которому он принадлежит, с помощью yum reinstall pkg_name.

Ответ или решение

Проблема, с которой вы столкнулись, связана с некорректной конфигурацией доступа к root-пользователю через команду su -l. Рассмотрим детально основной сценарий:

Проблема

Вы получили сообщение "permission denied" при попытке использовать su -l root будучи пользователем "john" после того, как сбросили пароль root в режиме одного пользователя. Вы также внесли изменения в конфигурации sudoers и PAM, но они, судя по всему, не решили проблему.

Варианты решения

1. Проверка конфигурации PAM:

На основе логов /var/log/secure, у вас есть проблема с конфигурацией PAM, что может вызывать ошибки при аутентификации.

  1. Проверка /etc/pam.d/su: Вам нужно убедиться, что файл имеет корректную синтаксическую структуру и содержит необходимые модули для работы PAM. В вашем случае строка auth required pam_wheel.so use_uid активирует ограничение доступа через группу wheel. Проверьте, что:

    • Пользователь "john" действительно добавлен в группу wheel. Это можно сделать командой:
      groups john
  2. Проверка изменений PAM: Используйте предложенную команду для проверки изменений в файлах PAM:

    for i in /etc/pam.d/* ; do rpm -qf $i; done | sort -u | sed -e 's/-[0-9]*.*//' | while read p; do echo "Verifying package $p"; rpm -V $p ; done

    Это проверит целостность файлов конфигурации PAM, сопоставляя их с версиями из пакетов RPM. Если обнаружены изменения, рассмотрите возможность их восстановления.

2. Редактирование /etc/sudoers:

Ваши изменения в файле /etc/sudoers могут также влиять на процесс аутентификации:

  • Убедитесь, что внесённые строки конфигурации не вступают в конфликт или не содержат ошибок синтаксиса. Вы можете использовать visudo для редактирования файла, так как он проверяет синтаксис.

3. Решение проблем с командой su:

Если команда su -l john также не работает под root, это может свидетельствовать о более широких проблемах с PAM или конфигурацией системы.

  • Проверьте разделы PAM, относящиеся к su, и убедитесь, что все необходимые модули указаны правильно.

Заключение

Для устранения проблемы необходимо внимательно проверить конфигурации PAM и sudoers на предмет ошибок. Используйте пакетные инструменты для восстановления затронутых файлов при необходимости. Если проблема сохраняется, рассмотрите возможность временного отключения всех изменений и тестирования с минимальной конфигурацией, чтобы выявить причину конфликта. Это поможет в локализации проблемы и её дальнейшем устранении.

Оцените материал
Добавить комментарий

Капча загружается...