#%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_pwdb.so shadow nullok auth required /lib/security/pam_nologin.so account required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_pwdb.so shadow nullok use_authtok session required /lib/security/pam_pwdb.so 第一行是注釋。任何以#開頭的行都是注釋。以下的三行排列著用於login認證的三個模塊其中第一行用以確認用戶是否以root登入,允許登入的tty被列在文件/etc/securetty 中(如果文件存在的話)第二行將會使用戶被提示輸入口令並校驗口令。第三行表示查文件/etc/nologin是否存在,如果存在就顯示其內容,而且如果用戶不是root,則禁止其登入。即便第一個模塊失敗了,也要完成三個模塊的校驗。這是一種安全上的考慮 ---這種設計永遠不要讓用戶知道他或她們為什麼會被拒絕,否則會讓其更容易突破認證。您可以將“required”改成“requisite”來修改這種認證方式。也就是說,如果有任何“requisite”模塊以失敗返回,整個PAM認證將終止再調用其它模塊也以失敗返回。第五行表示任何必要的記帳信息要被記載。例如,如果設置使用影子口令,pam_db.so 模塊將被執行以檢查該帳戶是否失效或者用戶口令是否超期而需要修改。第六行(該行需要折行來寫)用以指定如果login程序改變用戶的口令,它應當使用 pam_pwdb.so來完成。(這僅在auth模塊檢測到口令需要被改變時,例如一個影子口令已經過期時才使用)最後一行表示pam_pwdb.so模塊將被用來管理當前的會話過程。而目前該模塊什麼也不做;它可以被替換為別的所需的模塊。要注意配置文件中每一行的順序不是任意的。盡管required模塊以什麼順序被調用並沒有多大關系,但是還有其它一些控制符,其中optional很少在紅帽子LINUX中使用,而 sufficient 和requisite就要求行的順序不能顛倒。讓我們來看一下rlogin的認證配置:
auth required /lib/security/pam_securetty.so
auth sufficient /lib/security/pam_rhosts_auth.so
auth required /lib/security/pam_pwdb.so shadow nullok
auth required /lib/security/pam_nologin.so這和login的描述極為相似,但是其中比login的多一行模塊描述,而且模塊的順序也不同。首先,pam_securetty.so模塊將禁止以root從不安全的終端登入。這將有效的阻止任何root方式的遠程登入。如果您不想禁止的話(在這種情況下,我們建議您的機器要麼沒和Internet 相連,要麼呆在一個配置良好的防火牆後面),把這一行刪掉就是了。其次,pam_nologin.so 模塊將檢查/etc/nologin,如上所述。第三點,如果pam_rhosts_auth.so模塊認證通過,PAM就立即以成功返回而不再做任何口令校驗。如果pam_rhosts_auth.so認證失敗,該失敗將被忽略,繼續調用pam_pwdb.so模塊進行正常的口令認證。如果您在securetty認證失敗後不想讓系統繼續以口令詢問的話,您可以把pam_securetty.so模塊的required 改為 requisite。