выполнение su без пароля с pam su-authentication

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

Я сделал следующую настройку в 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 не требует пароля. Рассмотрим их подробнее:

  1. pam_permit.so: Этот модуль по умолчанию всегда возвращает успешный результат, делая путь аутентификации простым и не требующим ввода пароля.

  2. 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 требует дополнительных условий, которые в данном случае не учтены или неправильно настроены.

Попробуем несколько альтернативных настроек:

  1. Безусловный доступ для определенного пользователя:

    Если вы хотите, чтобы конкретный пользователь мог использовать команду su без пароля, добавьте следующую строку в начало файла /etc/pam.d/su:

    auth      sufficient    pam_succeed_if.so use_uid user = ваш_пользователь

    Замените ваш_пользователь на имя пользователя, которому вы хотите предоставить привилегии.

  2. Условный доступ для группы:

    Если необходимо, чтобы вся группа пользователей могла использовать su без пароля, используйте:

    auth      sufficient    pam_succeed_if.so use_uid user ingroup allowedpeople

    В этом случае allowedpeople замените на имя группы, которая должна иметь этот доступ.

  3. Безусловный доступ:

    Если цель состоит в полном игнорировании всех проверок паролей для всех пользователей с возможностью использовать su, добавьте:

    auth      sufficient    pam_permit.so

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

Применение

Прежде чем применить попытку изменить /etc/pam.d/su, убедитесь, что вы понимаете риски, связанные с обеспечением доступа без пароля. Это может серьезно повлиять на безопасность вашей системы, особенно если учетная запись root будет доступна через su без пароля.

Значение привилегий на уровне системы не должно быть недооценено. Убедитесь, что любые изменения конфигурации PAM протестированы в безопасной среде, прежде чем внедрять их в производственную систему. Кроме того, важно учитывать возможность настройки журнала изменений и регулярного контроля списка пользователей и групп, имеющих эту привилегию.

Заключение

Настройка PAM для предоставления возможности использования su без ввода пароля — это мощный инструмент, который требует внимательного планирования и понимания последствий. Правильная конфигурация позволяет обеспечить устойчивый баланс между удобством использования и уровнем безопасности системы. Будьте осторожны и тщательно продумывайте, кому и каким образом предоставлять привилегии в вашей инфраструктуре.

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

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