Мне нужно написать модуль PAM для Linux. Это хороший способ отлаживать его без перезагрузки каждый раз, когда мне нужно его протестировать? Что произойдет, если установка не будет работать должным образом и проникнет внутрь? Как мне его выключить? Что произойдет, если загрузка модуля не удалась, например, из-за отсутствия зависимостей?
Как отлаживать модуль Linux PAM?
Ответы (2)
Метод 1: вы можете попробовать изменить менее уязвимый файл внутри pam.d, чтобы протестировать свои модули. Например, измените конфигурацию pam для «sudo» внутри /etc/pam.d/, а затем добавьте свои модули для выполнения теста. Например: В следующей конфигурации файл «sudo» изменен для проверки работы файла «pam_auth.so».
#%PAM-1.0
auth required pam_env.so readenv=1 user_readenv=0
auth required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
#@include common-auth #this line is commented to make it use my pam module
auth required pam_auth.so
@include common-account
@include common-session-noninteractive
Это проверяется с помощью команды sudo в терминале следующим образом:
username@computer:~$ sudo nautilus
Пожалуйста, поместите файл .so в путь / lib / security /. Если каталог безопасности отсутствует, создайте новый каталог с тем же именем.
Метод 2: вы можете использовать специальный инструмент (например, pam-tester для тестирования ваших модулей PAM.
Многие модули PAM имеют debug
параметр, использующий системный журнал. В / var / log / secure есть больше входов.
Большую часть конфигурации вы можете протестировать с помощью сервисов. Например, если у вас есть в /etc/pam.d/su строка: account required pam_time.so debug
, вы можете протестировать ее, запустив su
и проверив, что происходит.
Если у вас есть конфигурация PAM для служб, которые вам необходимо перезагрузиться, чтобы затем протестировать (например, login
), я рекомендую использовать виртуальную машину для полного тестирования вашей конфигурации PAM перед ее развертыванием. Вы также можете перезагрузиться до уровня выполнения 1 и отменить изменения в файлах /etc/pam.d.