su: Доступ запрещен, несмотря на правильный пароль

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

В моей новой установке Gentoo команда su не работает для моего обычного пользователя: после ввода правильного пароля я получаю сообщение “su: Доступ запрещен”. Что может быть причиной этого? Я уже пробовал переустановить пакет, содержащий /bin/su.

ИЗМЕНЕНИЕ: sudo работает.

Вам необходимо добавить вашего пользователя в группу wheel:

 gpasswd -a вашпользователь wheel

В качестве альтернативы, вы можете отключить проверку членства в группе для su в pam, отредактировав

 /etc/pam.d/su

и закомментировав эту строку:

auth       required     pam_wheel.so use_uid

Это требует, чтобы пользователи находились в группе wheel, чтобы иметь возможность переключаться между пользователями. Переключение пользователей под обычным пользователем снова работает, когда этот модуль pam отключен для su.

Может быть много проблем. Проверьте некоторые из этих пунктов, используя гипотетического пользователя erik:

  1. Является ли erik членом группы wheel (groups)?
  2. Вы вводите пароль root? (А не пароль erik)
  3. Имеет ли /bin/su следующие привилегии: rwsr-xr-x (Установлен ли setuid на root? ls -l /bin/su)
  4. Можете ли вы зайти как root через консоль?
  5. Вы смотрели в логи для нахождения подсказок в сообщениях об ошибках?
  6. Включен ли grsecurity в ядре?
  7. Когда-либо ли это работало? Если да, то когда сломалось?
  8. Что происходит, если erik выполняет sudo su -?

Может быть много причин. Очень вероятно, что причина отображается в системных логах. Проверьте в /var/log файлы, которые были изменены в момент попытки su (имя файла зависит от вашей конфигурации syslog). Если у вас возникли трудности с интерпретацией записей в логах, скопируйте их и вставьте в ваш вопрос.

Я скомпилировал shadow в ходе сборки Linux From Scratch 8.4, и я мог войти как root или обычный пользователь, но не мог выполнить su из обычного пользователя в root, как для Эрика выше. Оказалось, что бинарный файл su принадлежал моему обычному пользователю. Это заработало после того, как я сменил владельца бинарного файла su на root и выполнил ‘chmod u+s’ на бинарном файле su.

Для меня стандартный пароль root “gentoo” не работал даже после добавления моего пользователя в группу wheel, поэтому я изменил пароль root с помощью команды “passwd” ПЕРЕД тем, как выйти из root. После этого я смог нормально получить доступ к root.

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

Вопрос о том, почему команда su в вашей новой установке Gentoo сообщает о «Permission denied» даже при вводе правильного пароля, может быть связан с несколькими факторами. Давайте рассмотрим их подробно и системно.

1. Проверка членства в группе wheel

Одной из наиболее распространённых причин получения этой ошибки является отсутствие вашего пользователя в группе wheel. Эта группа позволяет пользователям использовать команду su для получения прав администратора.

Что делать:
Откройте терминал и выполните следующую команду, заменив youruser на имя вашего пользователя:

gpasswd -a youruser wheel

После выполнения этой операции вам нужно будет выйти и снова войти в систему.

2. Убедитесь, что вы вводите правильный пароль

Проверьте, используете ли вы пароль для пользователя root, а не для вашего обычного пользователя. Команда su предполагает, что вы хотите переключиться на root, и требует именно его пароль.

3. Проверьте атрибуты файла /bin/su

Убедитесь, что бинарный файл su имеет установленные атрибуты setuid, что позволяет обычным пользователям запускать его с правами root.

Проверьте с помощью команды:

ls -l /bin/su

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

-rwsr-xr-x 1 root root ...

Если атрибут s отсутствует, это можно исправить командой:

chmod u+s /bin/su

4. Учетные данные и проверка доступа

Проверьте, может ли ваш пользователь erik войти в систему как root через консоль. Это можно сделать, перейдя в режим пользователя root.

5. Логи системы

Обратите внимание на системные логи, которые могут содержать подсказки о причине отказа. Логи обычно находятся в /var/log, и вам стоит искать записи, связанные с вашими попытками использования su.

6. Безопасность ядра (grsecurity)

Если у вас включены настройки безопасности ядра, такие как grsecurity, это может ограничивать возможность использования su. Ознакомьтесь с документацией по вашему ядру для проверки конфигурации.

7. Проверка состояния

Если su работал ранее, определите, что изменилось. Возможно, вы внесли изменения в систему, которые привели к возникновению данной проблемы.

8. Попробуйте использовать sudo

Поскольку вы упомянули, что sudo работает, это хороший временный обходной путь. Вы можете использовать команду:

sudo su -

Это даст вам доступ к root с использованием вашего пользовательского пароля.

9. Проблемы с установкой и файлами

В некоторых случаях причиной проблемы может быть неправильный владелец или права на сам бинарный файл su. Убедитесь, что файл принадлежит root и имеет правильные права доступа. Это можно исправить следующими командами:

chown root:root /bin/su
chmod 4755 /bin/su

Заключение

Если после выполнения всех вышеперечисленных шагов проблема не решена, настоятельно рекомендуется собрать более подробную информацию о настройках вашей системы и обратиться к сообществу Gentoo или документации. Правильная диагностика и устранение неполадок — ключ к успешному решению данной проблемы.

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

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