@kriptonus

Как настроить авторизацию через PAM несколькими способами?

Добрый день. Попытался разобораться с аутентификацией через PAM, получается, что для каждого приложения создается свой набор правил AAA. Вопрос в том, что обычно описывается авторизация через один источник, но мне нужен следующий алгоритм: подключающийся пользователь через PAM пытается выполнить AAA на сервере (скажем, Radius). Если результат процедуры отрицательный, то выполняется попытка AAA на локальном уровне (через shadow). В голове не складывается, как это написать в файле конфигурации:
#%PAM-1.0
auth      requisite    /lib/security/pam-radius.so
auth       required     /lib/security/pam_unix.so shadow nodelay
account    required     /lib/security/pam_nologin.so
account    required     /lib/security/pam_unix.so
password   required     /lib/security/pam_unix.so shadow nullok use_authtok
session    required     /lib/security/pam_unix.so
session    required     /lib/security/pam_limits.so


Тогда, вроде получается, что и при отказе и при успешной аутентификации от сервера будет происходить обращение к модуля локальной авторизации.
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 1
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Держи. Читать и разбираться, что почем придется самому.

Задача - локальная аутентификация., в случае отсутствия юзера - аутентификация через AD
auth       required     pam_env.so
auth       [success=3 new_authtok_reqd=done default=ignore] pam_unix.so try_first_pass
auth       requisite    pam_succeed_if.so uid >= 1000 quiet
auth       [success=1 new_authtok_reqd=done default=ignore] pam_winbind.so use_first_pass use_authtok krb5_auth krb5_ccache_type=FILE:/tmp/krb5cc_%u cached_login
auth       requisite    pam_deny.so
auth       required     pam_permit.so
auth       optional     pam_keystore.so use_first_pass
auth       optional     pam_ecryptfs.so unwrap
auth       optional     pam_gnome_keyring.so
auth       optional     pam_exec.so seteuid expose_authtok /usr/local/sbin/generate-credstore-auth

account    required     pam_unix.so
account    sufficient   pam_localuser.so
account    sufficient   pam_succeed_if.so uid < 1000 quiet
account    [default=bad success=ok user_unknown=ignore] pam_winbind.so
account    required     pam_permit.so

password   required     pam_pwquality.so try_first_pass retry=3 type=
password   sufficient   pam_unix.so nullok sha512 shadow try_first_pass use_authtok
password   optional     pam_ecryptfs.so
password   required     pam_deny.so
password   optional     pam_gnome_keyring.so

session    required     pam_env.so
session    required     pam_limits.so
-session   optional     pam_loginuid.so
session    optional     pam_mkhomedir.so umask=0077
-session   optional     pam_elogind.so
session    optional     pam_exec.so seteuid /usr/local/sbin/generate-credstore-session -p .trinity/share/config -d DOMAIN
session    [success=2 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session    [success=1 new_authtok_reqd=ok ignore=ignore default=bad] pam_unix.so
session    required     pam_winbind.so
session    optional     pam_ecryptfs.so unwrap
session    optional     pam_gnome_keyring.so auto_start

Скрипт generate-credstore-auth/generate-credstore-session - локальный, тебе не нужен, просто выброси
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы