Основи и персонализация на PAM
Основи на модулите за удостоверяване, конфигуриране на тях и създаване на приложение за вход

За потребителите на Linux сигурното споделяне на файлове е тромава задача. По-специално, той поражда необходимостта от запомнянето на много пароли и отнема много време за модифициране на приложения за достъп до системата (като вход, su, парола, ftp и т.н.). Въпросът се усложнява от факта, че това е процес на удостоверяване, по време на който системата идентифицира потребителя и му осигурява подходящ достъп.
История на използване на PAM
PAM е набор от API за удостоверяване на потребителя. Преди появата на PAM приложения като вход (както и rlogin, telnet, rsh) търсеха потребителското име във файла/etc/passwd, сравняваха двете стойности и удостоверяваха потребителя с въведеното от тях име. Всички приложения използват тези общи услуги, въпреки че подробностите за изпълнението и правомощията за конфигурирането им варират.
Тогава разработчиците на приложения се опитаха да създадат свои собствени процеси. За да направите това, беше необходимо да разделите приложението и модулите за защита (общ модул за защита може да се използва от всички приложения и да се конфигурира според нуждите).
Двигателят PAM комбинира много схеми за удостоверяване на ниско ниво в API на високо ниво, който ви позволява да създавате приложения, които използват удостоверяване, независимо от използваната схема за удостоверяване. Основна характеристика на PAM е динамично конфигуриране на удостоверяване с помощта на файла /etc/pam.d или /etc/pam.conf .
PAM може да бъде конфигуриран да предотврати удостоверяването на удостоверяването на потребителите и да ги уведомява при опит за удостоверяване. PAM програмите използват PAM модули (Authentication Modules), които се свързват с приложения по време на изпълнение за използване.
Фигура 1 показва основните стъпки на PAM модула.
Фигура 1. PAM библиотеката обработва файла pam.d и зарежда съответните модули
Операционни системи, които поддържат PAM
PAM е разработен от Sun Microsystems през 1995 г. и се поддържа от следните версии на операционната система (и по-нови):
- RedHat 5.0
- SUSE 6.2
- Debian 2.2
- Mandrake 5.2
- Калдера 1.3
- TurboLinux 3.6
PAM се поддържа и от по-нови версии на Solaris ™, AIX®, HP-UX и Mac OS® X. По-късно PAM е стандартизиран като част от процеса на стандартизация X/Open UNIX® (като част от единичния вход X/Open (XSSO) архитектура на услугата).
Реализации на PAM
Въпреки че няма строга класификация, може да се каже, че има три реализации на PAM:
- Linux-PAM: Обхваща всички видове PAM, обсъдени в тази статия. Основната архитектура на PAM на която и да е Linux платформа е подобна на версията на Linux-PAM.
- OpenPAM - друга реализация на PAM, разработена от Dag-Erling Smorgrav в NAI Labs, като част от изследователската програма DARPA-CHATS. Тъй като това е изпълнение с отворен код, то се използва предимно от FreeBSD, NetBSD и приложения (както и Mac OS X).
- Java ™ PAM или JPam: PAM е де факто стандартните модули за удостоверяване с поддръжка на Linux и UNIX. JPam действа като мост между Java кода и обикновения PAM. С JPam Java приложенията могат да използват PAM модули и свързани инструменти (като auth, акаунт, passwd, сесия и др.).