Linux-ൽ PAM എങ്ങനെ കോൺഫിഗർ ചെയ്യുകയും ഉപയോഗിക്കുകയും ചെയ്യാം


Linux-PAM (Unix-PAM ആർക്കിടെക്ചറിൽ നിന്ന് പരിണമിച്ച പ്ലഗ്ഗബിൾ ഓതന്റിക്കേഷൻ മൊഡ്യൂളുകളുടെ ചുരുക്കം) ഒരു ലിനക്സ് സിസ്റ്റത്തിലെ ആപ്ലിക്കേഷനുകളിലേക്ക് (അല്ലെങ്കിൽ സേവനങ്ങൾ) ഒരു ഉപയോക്താവിനെ ചലനാത്മകമായി പ്രാമാണീകരിക്കാൻ ഉപയോഗിക്കുന്ന പങ്കിട്ട ലൈബ്രറികളുടെ ശക്തമായ സ്യൂട്ടാണ്.

ആപ്ലിക്കേഷനുകൾക്കായി ഡൈനാമിക് പ്രാമാണീകരണ പിന്തുണ നൽകുന്ന ഒരു ഉയർന്ന തലത്തിലുള്ള API-ലേക്ക് ഒന്നിലധികം ലോ-ലെവൽ ഓതന്റിക്കേഷൻ മൊഡ്യൂളുകളെ ഇത് സംയോജിപ്പിക്കുന്നു. അണ്ടർലയിങ്ങ് ഓതന്റിക്കേഷൻ സിസ്റ്റത്തിൽ നിന്ന് സ്വതന്ത്രമായി ആധികാരികത ആവശ്യമായ ആപ്ലിക്കേഷനുകൾ എഴുതാൻ ഇത് ഡെവലപ്പർമാരെ അനുവദിക്കുന്നു.

പല ആധുനിക ലിനക്സ് വിതരണങ്ങളും സ്ഥിരസ്ഥിതിയായി Linux-PAM (ഇനി \PAM എന്ന് വിളിക്കുന്നു) പിന്തുണയ്ക്കുന്നു. ഈ ലേഖനത്തിൽ, Ubuntu, CentOS സിസ്റ്റങ്ങളിൽ എങ്ങനെ വിപുലമായ PAM ക്രമീകരിക്കാമെന്ന് ഞങ്ങൾ വിശദീകരിക്കും.

ഞങ്ങൾ കൂടുതൽ മുന്നോട്ട് പോകുന്നതിന് മുമ്പ്, ഇത് ശ്രദ്ധിക്കുക:

  • ഒരു സിസ്റ്റം അഡ്uമിനിസ്uട്രേറ്റർ എന്ന നിലയിൽ, ഏറ്റവും പ്രധാനപ്പെട്ട കാര്യം PAM കോൺഫിഗറേഷൻ ഫയൽ(കൾ) ആപ്ലിക്കേഷനുകളും (സേവനങ്ങളും) പ്ലഗ്ഗബിൾ ഓതന്റിക്കേഷൻ മൊഡ്യൂളുകളും (PAM-കൾ) തമ്മിലുള്ള കണക്ഷൻ എങ്ങനെ നിർവ്വചിക്കുന്നു എന്നതാണ്. PAM-ന്റെ ആന്തരിക പ്രവർത്തനം നിങ്ങൾ മനസ്സിലാക്കണമെന്നില്ല.
  • നിങ്ങളുടെ Linux സിസ്റ്റത്തിന്റെ സുരക്ഷയെ ഗുരുതരമായി മാറ്റാൻ PAM-ന് കഴിവുണ്ട്. തെറ്റായ കോൺഫിഗറേഷൻ നിങ്ങളുടെ സിസ്റ്റത്തിലേക്കുള്ള ആക്സസ് ഭാഗികമായോ പൂർണ്ണമായോ അപ്രാപ്തമാക്കും. ഉദാഹരണത്തിന് /etc/pam.d/* കൂടാതെ/അല്ലെങ്കിൽ /etc/pam.conf എന്നതിന് കീഴിലുള്ള ഒരു കോൺഫിഗറേഷൻ ഫയൽ(കൾ) ആകസ്മികമായി ഇല്ലാതാക്കുന്നത് നിങ്ങളുടെ സ്വന്തം സിസ്റ്റത്തിൽ നിന്ന് നിങ്ങളെ ലോക്ക് ഔട്ട് ആക്കും!

ഒരു പ്രോഗ്രാം എങ്ങനെ പരിശോധിക്കാം എന്നത് PAM-അറിയുന്നു

PAM ഉപയോഗിക്കുന്നതിന്, ഒരു ആപ്ലിക്കേഷൻ/പ്രോഗ്രാം PAM അറിഞ്ഞിരിക്കണം; PAM ഉപയോഗിക്കുന്നതിന് ഇത് പ്രത്യേകമായി എഴുതി സമാഹരിച്ചിരിക്കണം. ഒരു പ്രോഗ്രാം \PAM-aware ആണോ ഇല്ലയോ എന്നറിയാൻ, ldd കമാൻഡ് ഉപയോഗിച്ച് അത് PAM ലൈബ്രറിയിൽ കംപൈൽ ചെയ്തിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുക.

ഉദാഹരണത്തിന് sshd:

$ sudo ldd /usr/sbin/sshd | grep libpam.so

	libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007effddbe2000)

ലിനക്സിൽ PAM എങ്ങനെ കോൺഫിഗർ ചെയ്യാം

PAM-നുള്ള പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ /etc/pam.conf ആണ്, കൂടാതെ /etc/pam.d/ ഡയറക്uടറിയിൽ ഓരോ PAM-aware ആപ്ലിക്കേഷന്/സേവനങ്ങൾക്കുമുള്ള PAM കോൺഫിഗറേഷൻ ഫയലുകൾ അടങ്ങിയിരിക്കുന്നു. ഡയറക്uടറി നിലവിലുണ്ടെങ്കിൽ PAM ഫയൽ അവഗണിക്കും.

പ്രധാന കോൺഫിഗറേഷൻ ഫയലിന്റെ വാക്യഘടന ഇപ്രകാരമാണ്. ഒരൊറ്റ വരിയിൽ എഴുതിയിരിക്കുന്ന നിയമങ്ങളുടെ ഒരു ലിസ്റ്റ് കൊണ്ടാണ് ഫയൽ നിർമ്മിച്ചിരിക്കുന്നത് (നിങ്ങൾക്ക് \\” രക്ഷപ്പെടൽ പ്രതീകം ഉപയോഗിച്ച് നിയമങ്ങൾ നീട്ടാം) കൂടാതെ അഭിപ്രായങ്ങൾക്ക് മുമ്പായി \#” അടയാളപ്പെടുത്തുകയും വരിയുടെ അടുത്ത അവസാനം വരെ നീട്ടുകയും ചെയ്യുക.

ഓരോ നിയമത്തിന്റെയും ഫോർമാറ്റ് ടോക്കണുകളുടെ ഒരു സ്പേസ് വേർതിരിക്കുന്ന ശേഖരമാണ് (ആദ്യത്തെ മൂന്നെണ്ണം കേസ്-ഇൻസെൻസിറ്റീവ് അല്ല). ഈ ടോക്കണുകൾ ഞങ്ങൾ തുടർന്നുള്ള വിഭാഗങ്ങളിൽ വിശദീകരിക്കും.

service type control-flag module module-arguments 

എവിടെ:

  • സേവനം: യഥാർത്ഥ ആപ്ലിക്കേഷന്റെ പേര്.
  • തരം: മൊഡ്യൂൾ തരം/സന്ദർഭം/ഇന്റർഫേസ്.
  • നിയന്ത്രണ-ഫ്ലാഗ്: മൊഡ്യൂൾ അതിന്റെ പ്രാമാണീകരണ ടാസ്ക്കിൽ വിജയിക്കുന്നതിൽ പരാജയപ്പെട്ടാൽ PAM-API-യുടെ പ്രവർത്തനത്തെ സൂചിപ്പിക്കുന്നു.
  • മൊഡ്യൂൾ: PAM-ന്റെ സമ്പൂർണ്ണ ഫയൽനാമം അല്ലെങ്കിൽ ആപേക്ഷിക പാതനാമം.
  • മൊഡ്യൂൾ-ആർഗ്യുമെന്റുകൾ: മൊഡ്യൂൾ സ്വഭാവം നിയന്ത്രിക്കുന്നതിനുള്ള ടോക്കണുകളുടെ ഇടം വേർതിരിച്ച ലിസ്റ്റ്.

/etc/pam.d/-ലെ ഓരോ ഫയലിന്റെയും വാക്യഘടന പ്രധാന ഫയലിന് സമാനമാണ് കൂടാതെ ഇനിപ്പറയുന്ന ഫോമിന്റെ വരികൾ നിർമ്മിതമാണ്:

type control-flag module module-arguments

ഇത് /etc/pam.d/sshd ഫയലിൽ കാണുന്ന ഒരു റൂൾ ഡെഫനിഷൻ (മൊഡ്യൂൾ-ആർഗ്യുമെന്റുകൾ ഇല്ലാതെ) ഒരു ഉദാഹരണമാണ്, ഇത് /etc/nologin നിലവിലിരിക്കുമ്പോൾ റൂട്ട് അല്ലാത്ത ലോഗിനുകളെ അനുവദിക്കുന്നില്ല:

account required pam_nologin.so

PAM മാനേജ്മെന്റ് ഗ്രൂപ്പുകളും കൺട്രോൾ-ഫ്ലാഗുകളും മനസ്സിലാക്കുന്നു

PAM പ്രാമാണീകരണ ജോലികൾ നാല് സ്വതന്ത്ര മാനേജ്മെന്റ് ഗ്രൂപ്പുകളായി തിരിച്ചിരിക്കുന്നു. ഒരു നിയന്ത്രിത സേവനത്തിനായുള്ള ഒരു സാധാരണ ഉപയോക്താവിന്റെ അഭ്യർത്ഥനയുടെ വ്യത്യസ്ത വശങ്ങൾ ഈ ഗ്രൂപ്പുകൾ കൈകാര്യം ചെയ്യുന്നു.

ഈ മാനേജ്മെന്റ് ഗ്രൂപ്പ് തരങ്ങളുമായി ഒരു മൊഡ്യൂൾ ബന്ധപ്പെട്ടിരിക്കുന്നു:

  • അക്കൗണ്ട്: അക്കൗണ്ട് സ്ഥിരീകരണത്തിനുള്ള സേവനങ്ങൾ നൽകുക: ഉപയോക്താവിന്റെ പാസ്uവേഡ് കാലഹരണപ്പെട്ടോ?; ഈ ഉപയോക്താവിന് അഭ്യർത്ഥിച്ച സേവനത്തിലേക്ക് പ്രവേശനം അനുവദിച്ചിട്ടുണ്ടോ?.
  • ആധികാരികത: ഒരു ഉപയോക്താവിനെ പ്രാമാണീകരിക്കുകയും ഉപയോക്തൃ ക്രെഡൻഷ്യലുകൾ സജ്ജീകരിക്കുകയും ചെയ്യുക.
  • പാസ്uവേഡ്: ഉപയോക്തൃ പാസ്uവേഡുകൾ അപ്uഡേറ്റ് ചെയ്യുന്നതിനും പ്രാമാണീകരണ മൊഡ്യൂളുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നതിനും ഉത്തരവാദിത്തമുണ്ട്.
  • സെഷൻ: ഒരു സെഷന്റെ തുടക്കത്തിലും സെഷന്റെ അവസാനത്തിലും നടത്തിയ പ്രവർത്തനങ്ങൾ നിയന്ത്രിക്കുക.

PAM ലോഡ് ചെയ്യാവുന്ന ഒബ്uജക്റ്റ് ഫയലുകൾ (മൊഡ്യൂളുകൾ) ഇനിപ്പറയുന്ന ഡയറക്uടറിയിലാണ് സ്ഥിതി ചെയ്യുന്നത്: ആർക്കിടെക്ചറിനെ ആശ്രയിച്ച് /lib/security/ അല്ലെങ്കിൽ /lib64/security.

പിന്തുണയ്uക്കുന്ന നിയന്ത്രണ-ഫ്ലാഗുകൾ ഇവയാണ്:

  • ആവശ്യകത: പരാജയം ആദ്യ മൊഡ്യൂൾ പരാജയത്തിന്റെ സ്വഭാവം സൂചിപ്പിക്കുന്ന അപ്ലിക്കേഷനിലേക്ക് തൽക്ഷണം നിയന്ത്രണം നൽകുന്നു.
  • ആവശ്യമാണ്: ലിബ്പാമിന് വിജയിക്കാൻ ഈ മൊഡ്യൂളുകളെല്ലാം ആവശ്യമാണ്.
  • മതി: മുമ്പുള്ള എല്ലാ മൊഡ്യൂളുകളും വിജയിച്ചതിനാൽ, ഈ മൊഡ്യൂളിന്റെ വിജയം ആപ്ലിക്കേഷനിലേക്ക് ഉടനടി വിജയകരമായ തിരിച്ചുവരവിലേക്ക് നയിക്കുന്നു (ഈ മൊഡ്യൂളിന്റെ പരാജയം അവഗണിക്കപ്പെടുന്നു).
  • ഓപ്ഷണൽ: ഈ മൊഡ്യൂളിന്റെ വിജയമോ പരാജയമോ സാധാരണയായി രേഖപ്പെടുത്തിയിട്ടില്ല.

മുകളിലുള്ള കീവേഡുകൾക്ക് പുറമേ, മറ്റ് രണ്ട് സാധുവായ നിയന്ത്രണ ഫ്ലാഗുകളും ഉണ്ട്:

  • ഉൾപ്പെടുത്തുക, സബ്uസ്റ്റാക്ക് ചെയ്യുക: ഈ നിയന്ത്രണത്തിലേക്കുള്ള ആർഗ്യുമെന്റായി വ്യക്തമാക്കിയ കോൺഫിഗറേഷൻ ഫയലിൽ നിന്ന് നൽകിയിരിക്കുന്ന തരത്തിലുള്ള എല്ലാ വരികളും ഉൾപ്പെടുത്തുക.

PAM വഴി SSH സേവനത്തിലേക്കുള്ള റൂട്ട് ആക്uസസ് എങ്ങനെ നിയന്ത്രിക്കാം

ഒരു ഉദാഹരണമായി, SSH വഴിയും ലോഗിൻ പ്രോഗ്രാമുകൾ വഴിയും ഒരു സിസ്റ്റത്തിലേക്കുള്ള റൂട്ട് യൂസർ ആക്സസ് അപ്രാപ്തമാക്കുന്നതിന് PAM എങ്ങനെ ഉപയോഗിക്കാമെന്ന് ഞങ്ങൾ ക്രമീകരിക്കും. ഇവിടെ, ലോഗിൻ, sshd സേവനങ്ങളിലേക്കുള്ള ആക്uസസ് നിയന്ത്രിച്ചുകൊണ്ട് ഒരു സിസ്റ്റത്തിലേക്കുള്ള റൂട്ട് യൂസർ ആക്uസസ് അപ്രാപ്uതമാക്കാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു.

നിർദ്ദിഷ്uട അക്കൗണ്ടുകളുടെ പ്രത്യേകാവകാശങ്ങൾ പരിമിതപ്പെടുത്തുന്നതിന് മികച്ച വഴക്കം നൽകുന്ന /lib/security/pam_listfile.so മൊഡ്യൂൾ നമുക്ക് ഉപയോഗിക്കാം. കാണിച്ചിരിക്കുന്നതുപോലെ /etc/pam.d/ ഡയറക്uടറിയിൽ ടാർഗെറ്റ് സേവനത്തിനായി ഫയൽ തുറന്ന് എഡിറ്റ് ചെയ്യുക.

$ sudo vim /etc/pam.d/sshd
OR
$ sudo vim /etc/pam.d/login

രണ്ട് ഫയലുകളിലും ഈ നിയമം ചേർക്കുക.

auth    required       pam_listfile.so \
        onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

മുകളിലുള്ള നിയമത്തിലെ ടോക്കണുകൾ വിശദീകരിക്കുന്നു:

  • auth: മൊഡ്യൂൾ തരം (അല്ലെങ്കിൽ സന്ദർഭം) ആണ്.
  • ആവശ്യമാണ്: ഒരു കൺട്രോൾ ഫ്ലാഗ് ആണ്, മൊഡ്യൂൾ ഉപയോഗിക്കുകയാണെങ്കിൽ, അത് പാസാകണം അല്ലെങ്കിൽ മറ്റ് മൊഡ്യൂളുകളുടെ നില പരിഗണിക്കാതെ മൊത്തത്തിലുള്ള ഫലം പരാജയപ്പെടും.
  • pam_listfile.so: ഒരു അനിയന്ത്രിതമായ ഫയലിനെ അടിസ്ഥാനമാക്കി സേവനങ്ങൾ നിഷേധിക്കുന്നതിനോ അനുവദിക്കുന്നതിനോ ഉള്ള ഒരു മാർഗ്ഗം നൽകുന്ന ഒരു മൊഡ്യൂളാണ്.
  • onerr=succeed: മൊഡ്യൂൾ ആർഗ്യുമെന്റ്.
  • item=user: ഫയലിൽ ലിസ്uറ്റ് ചെയ്uതിരിക്കുന്നതും പരിശോധിക്കേണ്ടതുമായ മൊഡ്യൂൾ ആർഗ്യുമെന്റ്.
  • sense=deny: മൊഡ്യൂൾ ആർഗ്യുമെന്റ് ഫയലിൽ കണ്ടെത്തിയാൽ എടുക്കേണ്ട നടപടി വ്യക്തമാക്കുന്നു, ഫയലിൽ ഇനം കണ്ടെത്തിയില്ലെങ്കിൽ, വിപരീത പ്രവർത്തനം അഭ്യർത്ഥിക്കുന്നു.
  • file=/etc/ssh/deniedusers: ഒരു വരിയിൽ ഒരു ഇനം അടങ്ങിയിരിക്കുന്ന ഫയൽ വ്യക്തമാക്കുന്ന മൊഡ്യൂൾ ആർഗ്യുമെന്റ്.

അടുത്തതായി, നമ്മൾ /etc/ssh/deniedusers എന്ന ഫയൽ സൃഷ്ടിക്കുകയും അതിൽ റൂട്ട് എന്ന പേര് ചേർക്കുകയും വേണം:

$ sudo vim /etc/ssh/deniedusers

മാറ്റങ്ങൾ സംരക്ഷിച്ച് ഫയൽ അടയ്ക്കുക, തുടർന്ന് അതിൽ ആവശ്യമായ അനുമതികൾ സജ്ജമാക്കുക:

$ sudo chmod 600 /etc/ssh/deniedusers

ഇനി മുതൽ, മുകളിൽ പറഞ്ഞ നിയമം PAM-നോട് /etc/ssh/deniedusers ഫയലുമായി ബന്ധപ്പെടാനും ലിസ്റ്റുചെയ്ത ഏതൊരു ഉപയോക്താവിനും SSH-ലേക്കുള്ള ആക്uസസ് നിരസിക്കാനും ലോഗിൻ ചെയ്യാനും പറയും.

എങ്ങനെ ലിനക്സിൽ വിപുലമായ PAM കോൺഫിഗർ ചെയ്യാം

കൂടുതൽ സങ്കീർണ്ണമായ PAM നിയമങ്ങൾ എഴുതുന്നതിന്, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന ഫോമിൽ സാധുവായ നിയന്ത്രണ-ഫ്ലാഗുകൾ ഉപയോഗിക്കാം:

type [value1=action1 value2=action2 …] module module-arguments

വരി നിർവചിച്ചിരിക്കുന്ന മൊഡ്യൂളിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഫംഗ്uഷനിൽ നിന്നുള്ള റിട്ടേൺ കോഡുമായി valueN പൊരുത്തപ്പെടുന്നിടത്ത്. ഓൺ-ലൈൻ PAM അഡ്മിനിസ്ട്രേറ്ററുടെ ഗൈഡിൽ നിന്ന് പിന്തുണയ്ക്കുന്ന മൂല്യങ്ങൾ നിങ്ങൾക്ക് കണ്ടെത്താനാകും. ഒരു പ്രത്യേക മൂല്യം ഡിഫോൾട്ടാണ്, ഇത് എല്ലാ valueN-കളും വ്യക്തമായി പരാമർശിക്കാത്തതിനെ സൂചിപ്പിക്കുന്നു.

ആക്ഷൻN-ന് ഇനിപ്പറയുന്ന ഫോമുകളിൽ ഒന്ന് എടുക്കാം:

  • അവഗണിക്കുക: മൊഡ്യൂളുകളുടെ ഒരു കൂട്ടത്തോടൊപ്പമാണ് ഈ പ്രവർത്തനം ഉപയോഗിക്കുന്നതെങ്കിൽ, മൊഡ്യൂളിന്റെ റിട്ടേൺ സ്റ്റാറ്റസ് ആപ്ലിക്കേഷൻ നേടുന്ന റിട്ടേൺ കോഡിന് സംഭാവന നൽകില്ല.
  • മോശം: മൊഡ്യൂൾ പരാജയപ്പെടുന്നതിന്റെ സൂചനയായി റിട്ടേൺ കോഡ് കരുതണമെന്ന് സൂചിപ്പിക്കുന്നു. ഈ മൊഡ്യൂൾ പരാജയപ്പെടുന്ന സ്റ്റാക്കിലെ ആദ്യത്തേതാണെങ്കിൽ, അതിന്റെ സ്റ്റാറ്റസ് മൂല്യം മുഴുവൻ സ്റ്റാക്കിനും ഉപയോഗിക്കും.
  • die: മോശമായതിന് തുല്യമാണ്, എന്നാൽ മൊഡ്യൂൾ സ്റ്റാക്ക് അവസാനിപ്പിച്ചേക്കാം, PAM ഉടൻ തന്നെ ആപ്ലിക്കേഷനിലേക്ക് മടങ്ങുന്നു.
  • ശരി: മൊഡ്യൂളുകളുടെ മുഴുവൻ സ്റ്റാക്കിന്റെ റിട്ടേൺ കോഡിലേക്ക് ഈ റിട്ടേൺ കോഡ് നേരിട്ട് സംഭാവന ചെയ്യണമെന്ന് സിസ്റ്റം അഡ്uമിനിസ്uട്രേറ്റർ കരുതുന്നതായി ഇത് PAM-ന് നിർദ്ദേശിക്കുന്നു.
  • ചെയ്uതു: ശരി എന്നതിന് തുല്യമാണ്, എന്നാൽ മൊഡ്യൂൾ സ്റ്റാക്ക് അവസാനിപ്പിച്ചേക്കാം, ഉടൻ തന്നെ ആപ്ലിക്കേഷനിലേക്ക് മടങ്ങുന്ന PAM.
  • N (ഒരു ഒപ്പിടാത്ത പൂർണ്ണസംഖ്യ): ശരി എന്നതിന് തുല്യമാണ്, എന്നാൽ സ്റ്റാക്കിലെ അടുത്ത N മൊഡ്യൂളുകൾക്ക് മുകളിലൂടെ പോകാം.
  • പുനഃസജ്ജമാക്കുക: ഈ പ്രവർത്തനം മൊഡ്യൂൾ സ്റ്റാക്കിന്റെ അവസ്ഥയുടെ എല്ലാ മെമ്മറിയും മായ്uക്കുകയും അടുത്ത സ്റ്റാക്ക് ചെയ്uത മൊഡ്യൂൾ ഉപയോഗിച്ച് പുനരാരംഭിക്കുകയും ചെയ്യുന്നു.

നാല് കീവേഡുകളിൽ ഓരോന്നും: ആവശ്യമാണ്; ആവശ്യമുള്ളത്; മതി; കൂടാതെ ഓപ്ഷണൽ, [...] വാക്യഘടനയുടെ അടിസ്ഥാനത്തിൽ തുല്യമായ ഒരു പദപ്രയോഗം ഉണ്ടായിരിക്കും, അത് കൂടുതൽ സങ്കീർണ്ണമായ നിയമങ്ങൾ എഴുതാൻ നിങ്ങളെ അനുവദിക്കുന്നു, അവ ഇവയാണ്:

  • ആവശ്യമാണ്: [success=ok new_authtok_reqd=okignign=ignore default=bad]
  • ആവശ്യകത: [success=ok new_authtok_reqd=okignign=ignore default=die]
  • മതി: [success=done new_authtok_reqd=done default=ignore]
  • ഓപ്ഷണൽ: [success=ok new_authtok_reqd=ok default=ignore]

ഒരു ആധുനിക CentOS 7 സിസ്റ്റത്തിൽ നിന്നുള്ള ഒരു ഉദാഹരണമാണ് ഇനിപ്പറയുന്നത്. /etc/pam.d/postlogin PAM ഫയലിൽ നിന്നുള്ള ഈ നിയമങ്ങൾ നമുക്ക് പരിഗണിക്കാം:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
session     [success=1 default=ignore] pam_succeed_if.so service !~ gdm* service !~ su* quiet
session     [default=1]   pam_lastlog.so nowtmp showfailed
session     optional      pam_lastlog.so silent noupdate showfailed

/etc/pam.d/smartcard-auth PAM ഫയലിൽ നിന്നുള്ള മറ്റൊരു ഉദാഹരണ കോൺഫിഗറേഷൻ ഇതാ:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        [success=done ignore=ignore default=die] pam_pkcs11.so nodebug wait_for_card
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so

password    required      pam_pkcs11.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

കൂടുതൽ വിവരങ്ങൾക്ക്, pam.d മാൻ പേജ് കാണുക:

$ man pam.d 

അവസാനമായി, കോൺഫിഗറേഷൻ ഫയൽ വാക്യഘടനയുടെയും എല്ലാ PAM മൊഡ്യൂളുകളുടെയും സമഗ്രമായ വിവരണം Linux-PAM-നുള്ള ഡോക്യുമെന്റേഷനിൽ കാണാം.

ഒരു ലിനക്സ് സിസ്റ്റത്തിലെ ആപ്ലിക്കേഷനുകളിലേക്ക് ആധികാരിക ഉപയോക്താക്കൾക്ക് പ്രാമാണീകരണത്തെ ആശ്രയിക്കുന്ന പ്രോഗ്രാമുകളെ അനുവദിക്കുന്ന ശക്തമായ ഉയർന്ന തലത്തിലുള്ള API ആണ് PAM. ഇത് ശക്തവും എന്നാൽ മനസ്സിലാക്കാനും ഉപയോഗിക്കാനും വളരെ വെല്ലുവിളി നിറഞ്ഞതാണ്.

ഈ ലേഖനത്തിൽ, ഉബുണ്ടുവിലും സെന്റോസിലും PAM-ന്റെ വിപുലമായ സവിശേഷതകൾ എങ്ങനെ ക്രമീകരിക്കാമെന്ന് ഞങ്ങൾ വിശദീകരിച്ചിട്ടുണ്ട്. നിങ്ങൾക്ക് പങ്കിടാൻ എന്തെങ്കിലും ചോദ്യങ്ങളോ അഭിപ്രായങ്ങളോ ഉണ്ടെങ്കിൽ, ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം ഉപയോഗിക്കുക.