Вопрос или проблема
Я сделал следующую настройку в ubuntu 14.04, но она все равно запрашивает пароль.
$ /etc/passwd
test:x:1004:1004::/home/test:/bin/bash
$/etc/pam.d/su
auth required pam_wheel.so group=test
auth sufficient pam_wheel.so trust use_uid
Есть ли какой-нибудь другой способ это сделать?
su в root без пароля
В файле /etc/pam.d/su
добавьте следующую строку:
auth sufficient pam_permit.so
Чтобы ограничить это только вашим именем пользователя, используйте следующую строку, заменив yourusername
на ваше фактическое имя пользователя:
auth sufficient pam_succeed_if.so use_uid user = yourusername
Вы также можете ограничить это для группы, в этом случае группе allowedpeople можно su без пароля:
auth sufficient pam_succeed_if.so use_uid user ingroup allowedpeople
затем войдите
su yourusername
Вы должны добавить эту строку в /etc/pam.d/su
перед:
auth [success=ignore default=1] pam_succeed_if.so user = <username you want to su>
затем,
Чтобы ограничить это только вашим именем пользователя, используйте следующую строку, заменив yourusername на ваше фактическое имя пользователя:
auth sufficient pam_succeed_if.so use_uid user = yourusername
чтобы ограничить доступ для группы
auth sufficient pam_succeed_if.so use_uid user ingroup allowedpeople
Ответ или решение
Настройка аутентификации пользователей на уровне системы операционных систем — это важная задача, особенно когда речь идет о процедурах повышения привилегий, таких как команда su
, которая позволяет переключаться на другого пользователя, например, на суперпользователя root. Использование Pluggable Authentication Modules (PAM) предоставляет гибкость в конфигурации аутентификационных механизмов. Рассмотрим, как можно настроить систему, чтобы команда su
не требовала ввода пароля, используя PAM в Ubuntu 14.04.
Теория
PAM (Pluggable Authentication Modules) — это механизм, который позволяет системным администраторам настраивать аутентификацию пользователей в приложениях и службах Unix/Linux систем. PAM предоставляет интерфейс для подключения различных модулей, отвечающих за разные аспекты аутентификации. Каждый модуль в PAM
выполняет специфичную функцию, например, проверяет наличие пользователя или правильность пароля, и возвращает код успешного или неуспешного выполнения.
Файл конфигурации PAM, связанный с командой su
, находится по пути /etc/pam.d/su
. В нем системный администратор может настроить, как система будет обрабатывать запросы на переключение пользователя. Существует несколько модулей PAM
, которые можно использовать для достижения результата, при котором su
не требует пароля. Рассмотрим их подробнее:
-
pam_permit.so: Этот модуль по умолчанию всегда возвращает успешный результат, делая путь аутентификации простым и не требующим ввода пароля.
-
pam_succeed_if.so: Этот модуль позволяет использовать условия, чтобы определить, следует ли считать аутентификацию успешной или нет. В условиях могут использоваться такие параметры, как
user
иingroup
.
Теперь разберемся, какая конфигурация позволяет пользователю использовать su
без ввода пароля:
Пример
Ваша текущая конфигурация выглядит следующим образом:
auth required pam_wheel.so group=test
auth sufficient pam_wheel.so trust use_uid
Предполагается, что цель состоит в том, чтобы пользователь из группы test
мог использовать команду su
без пароля. Однако, эта настройка не будет работать, так как pam_wheel.so
требует дополнительных условий, которые в данном случае не учтены или неправильно настроены.
Попробуем несколько альтернативных настроек:
-
Безусловный доступ для определенного пользователя:
Если вы хотите, чтобы конкретный пользователь мог использовать команду
su
без пароля, добавьте следующую строку в начало файла/etc/pam.d/su
:auth sufficient pam_succeed_if.so use_uid user = ваш_пользователь
Замените
ваш_пользователь
на имя пользователя, которому вы хотите предоставить привилегии. -
Условный доступ для группы:
Если необходимо, чтобы вся группа пользователей могла использовать
su
без пароля, используйте:auth sufficient pam_succeed_if.so use_uid user ingroup allowedpeople
В этом случае
allowedpeople
замените на имя группы, которая должна иметь этот доступ. -
Безусловный доступ:
Если цель состоит в полном игнорировании всех проверок паролей для всех пользователей с возможностью использовать
su
, добавьте:auth sufficient pam_permit.so
Эта настройка откроет доступ для всех пользователей и сценариев использования su
, что может быть небезопасно.
Применение
Прежде чем применить попытку изменить /etc/pam.d/su
, убедитесь, что вы понимаете риски, связанные с обеспечением доступа без пароля. Это может серьезно повлиять на безопасность вашей системы, особенно если учетная запись root будет доступна через su
без пароля.
Значение привилегий на уровне системы не должно быть недооценено. Убедитесь, что любые изменения конфигурации PAM протестированы в безопасной среде, прежде чем внедрять их в производственную систему. Кроме того, важно учитывать возможность настройки журнала изменений и регулярного контроля списка пользователей и групп, имеющих эту привилегию.
Заключение
Настройка PAM для предоставления возможности использования su
без ввода пароля — это мощный инструмент, который требует внимательного планирования и понимания последствий. Правильная конфигурация позволяет обеспечить устойчивый баланс между удобством использования и уровнем безопасности системы. Будьте осторожны и тщательно продумывайте, кому и каким образом предоставлять привилегии в вашей инфраструктуре.