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