Modul definiuje funkcje wywolywane w sekcjach Auth i Account: pam_sm_setcred, pam_sm_authenticate oraz pam_sm_acct_mgmt. pam_sm_setcred nic nie robi i zwraca PAM_SUCCESS. Obie pozostale funkcje wywoluja funkcje sprawdz_w_pliku, ktora dla zadanych parametrow: nazwy uzytkownika i nazwy serwisu czyta plik /etc/udenied i zwraca: - NIE_MA jesli nie ma zadnego wpisu laczacego tego uzytkownika z tym serwisem (takze jesli nie ma pliku), - DOZWOLONY jesli ostatnim wpisem jest allow - ZABRONIONY jesli ostatnim wpisem jest deny Nie bede wnikal w implementacje tej funkcji, generalnie opiera sie o fscanf i strcmp. pam_sm_authenticate pobiera nazwe uzytkownika funkcja pam_get_user i nazwe serwisu funkcja pam_get_item z parametrem PAM_SERVICE. Jesli ktoras z funkcji zwroci blad, autentykacja nie powiedzie sie. Nastepnie wywoluje sprawdz_w_pliku i zwraca PAM_SUCCESS jesli NIE_MA lub DOZWOLONY, a PAM_AUTH_ERR jesli ZABRONIONY. pam_sm_acct_mgmt tak samo pobiera nazwe uzytkownika i serwisu, wywoluje sprawdz_w_pliku i dla DOZWOLONY dopisuje do pliku bedacego parametrem wpis konczacy sie allow, dla ZABRONIONY deny, a dla NIE_MA nie dopisuje nic. Zla liczba parametrow, blad funkcji pam_get..., blad otwierania pliku - powoduja zwrocenie bledu. Jesli wszytsko dobrze, funkcja zwraca PAM_SUCCESS. Testy wskazuja na to, ze jesli w sekcji auth uzytkownik zostanie odrzucony, nie jest juz wykonywana sekcja account. Dlatego wpis deny w pliku log w praktyce sie nie zdarza. Jesli funkcja modulu konczy sie bledem, wypisuje na stderr komunikat. Mam nadzieje ze to nie blad.