User Tools

Site Tools


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

This is an old revision of the document!


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

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

auth

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

account

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

session

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

password

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

binding

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

required

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

requisite

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

sufficient

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

optional

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

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

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

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>

Аутентификация с использованием RADIUS сервера

Аутентификация сервиса 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-get 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.
...

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

Ubuntu

root@gate:~# apt-get install libpam-modules # usually installed

root@gate:~# cat /etc/pam.d/common-session
...
# end of pam-auth-update config
session    required     pam_mkhomedir.so

FreeBSD

[gate:~] # pkg_add -r 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
...

Ubuntu 10.04

root@client1:~# apt-get install libpam-ssh

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

Ubuntu 12.04

!!! Отсутствует !!!

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

Ubuntu/Debian

root@client1:~# apt-get 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.1369903985.txt.gz · Last modified: 2013/05/30 12:53 by val