Инструменты пользователя

Инструменты сайта


использование_библиотеки_pam

Использование библиотеки PAM

Терминология PAM

Подсистемы (facility)

auth

Аутентификация. Эта подсистема, собственно говоря, реализует аутентификацию аппликанта и выяснение полномочий учётной записи.

account

Управление учётной записью. Эта подсистема обрабатывает вопросы доступности учетной записи, не связанные с аутентификацией, такие, как ограничения в доступе на основе времени суток или загрузки сервера.

session

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

password

Управление паролем. Эта подсистема используется для изменения ключа аутентификации, связанного с учетной записью, по причине истечения его срока действия или желания пользователя изменить его.

Управляющие флаги цепочек

required

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

sufficient

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

optional

Модуль отрабатывается, но результат выполнения игнорируется. Если все модули в цепочке помечены как optional, то удовлетворяться будут все запросы.

requisite

Если модуль возвращает положительный ответ, выполняется оставшаяся часть цепочки, запрос удовлетворяется, если никакой другой модуль не отработает отрицательно. Если же модуль отрабатывает отрицательно, то отработка цепочки немедленно прекращается, а запрос отвергается.

binding

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

Примеры использования

Права на команду su

$ cat /etc/pam.d/su

Приостановка регистрации пользователей

FreeBSD

[gate:~] # grep nologin /etc/pam.d/sshd
account         required        pam_nologin.so
[gate:~] # cat > /var/run/nologin
Please do not login now
<Ctrl-D>

Ubuntu

root@gate:~# grep nologin /etc/pam.d/sshd
# Disallow non-root logins when /etc/nologin exists.
account    required     pam_nologin.so
root@gate:~# cat > /etc/nologin
Please do not login now
<Ctrl-D>

Аутентификация сервиса login через pam radius

FreeBSD

[gate:~] # cat /etc/radius.conf
auth server testing123 3 2
[gate:~] # cat /etc/pam.d/login
...
auth            sufficient      pam_radius.so           no_warn try_first_pass
auth            include         system             
...

Ubuntu

root@gate:~# apt install libpam-radius-auth freeradius-utils

root@gate:~# cat /etc/pam_radius_auth.conf
...
server testing123 3
...
root@gate:~# cat /etc/pam.d/login
...
auth       sufficient   pam_radius_auth.so
# Standard Un*x authentication.
...

Автоматическое создание домашних каталогов

  • Уже установлено

Debian/Ubuntu

root@gate:~# apt install libpam-modules

root@gate:~# cat /etc/pam.d/common-session
...
session    required     pam_mkhomedir.so

FreeBSD

[gate:~] # mkdir /home

freebsd10# pkg install pam_mkhomedir

[gate:~] # cat /etc/pam.d/sshd
...
# session
session         required       /usr/local/lib/pam_mkhomedir.so
...

Использование pam_ssh для сервиса login

FreeBSD

[client1:~] # cat /etc/pam.d/system
...
# auth
...
auth            sufficient      pam_ssh.so              no_warn try_first_pass
auth            required        pam_unix.so             no_warn try_first_pass nullok
...
# session
session         optional        pam_ssh.so
session         required        pam_lastlog.so          no_fail
...

Debian/Ubuntu

Все само пропишется, пароль ДОЛЖЕН совпадать с UNIX паролем

root@client1:~# apt install libpam-ssh

Использование pam_krb5 для сервиса login/xdm

Debian/Ubuntu

root@client1:~# apt install libpam-krb5

все настроится автоматически

root@client1:~# grep krb5 /etc/pam.d/*

FreeBSD

[client1:~] # cat /etc/pam.d/system
...
# auth
...
auth            sufficient      pam_krb5.so             no_warn try_first_pass
...
[client1:~] # cat /etc/pam.d/xdm
...
# auth
auth            sufficient      pam_krb5.so             no_warn try_first_pass
...
использование_библиотеки_pam.txt · Последние изменения: 2019/07/05 15:39 — val