Назад | Перейти на главную страницу

Как службы сопоставляются с файлами в /etc/pam.d?

Как pam решает, какие файлы в /etc/pam.d использовать в зависимости от того, входит ли пользователь в систему через ssh, локально, через последовательную консоль и т. Д.?

Это может быть жестко запрограммировано в программах, но каждая служба имеет свой собственный файл в /etc/pam.d, обычно названный по фактическому имени процесса. И локальная, и последовательная консоли работают через getty, который передает фактический вход в систему для «входа в систему», поэтому вам нужно будет посмотреть /etc/pam.d/login. SSH - это на самом деле sshd, поэтому он находится в /etc/pam.d/sshd

В большинстве современных дистрибутивов эти файлы в основном содержат такие строки, как «@include common-password» или «auth include system-auth», поэтому для этих двух вам нужно будет посмотреть /etc/pam.d/common-password или /etc/pam.d/system-auth. Немного более старые дистрибутивы (например, RHEL3) используют что-то вроде «auth required pam_stack.so service = system-auth», что является модульной версией того же самого.

Имя «службы» PAM («sshd», «sudo» и т. Д.) Компилируется в приложение. Это то, что определяет, какой файл будет загружен изначально. После этого строки @include обрабатываются, как описано в сообщении freiheit.