Основи и персонализация на 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:

  1. Linux-PAM: Обхваща всички видове PAM, обсъдени в тази статия. Основната архитектура на PAM на която и да е Linux платформа е подобна на версията на Linux-PAM.
  2. OpenPAM - друга реализация на PAM, разработена от Dag-Erling Smorgrav в NAI Labs, като част от изследователската програма DARPA-CHATS. Тъй като това е изпълнение с отворен код, то се използва предимно от FreeBSD, NetBSD и приложения (както и Mac OS X).
  3. Java ™ PAM или JPam: PAM е де факто стандартните модули за удостоверяване с поддръжка на Linux и UNIX. JPam действа като мост между Java кода и обикновения PAM. С JPam Java приложенията могат да използват PAM модули и свързани инструменти (като auth, акаунт, passwd, сесия и др.).