PWAUTH(3)

NAZWA
pwauth - procedury uwierzytelniania haseł zdefiniowane przez administratora

SKŁADNIA
#include <pwauth.h>

int pw_auth (char *command, char *user, int reason, char *input);

OPIS
pw_auth wywołuje funkcje zdefiniowane przez administratora dla danego użytkownika.

command jest nazwą programu uwierzytelniania (autentykacji). Jest ona otrzymywana z informacji zawartej pliku haseł użytkowników. Odpowiedni łańcuch (z pola hasła) zawiera jedną lub więcej, rozdzielonych średnikami, nazw plików wykonywalnych. Programy zostaną wykonane w zadanej kolejności. Dla każdej z przyczyn (reason) podanych niżej podane są argumenty wiersza poleceń.

user jest nazwą sprawdzanego użytkownika, w postaci podanej w pliku /etc/passwd. Pozycje opisujące użytkowników indeksowane są nazwą użytkownika. Pozwala to na istnienie powtarzających się identyfikatorów (UID). Każda z różnych nazw użytkownika o tym samym identyfikatorze może posiadać inny program i informację autentykującą.

Każda z dopuszczalnych przyczyn autentykacji obsługiwana jest w potencjalnie różny sposób. Do komunikacji z użytkownikiem dostępne są standardowe deskryptory plików 0, 1 i 2, chyba że wspomniano inaczej. Do ustalenia tożsamości użytkownika wykonującego żądanie uwierzytelnienia może zostać użyty rzeczywisty identyfikator. Przyczyna (reason) jest jedną z

PW_SU
    Wykonaj uwierzytelnienie dla bieżącego rzeczywistego identyfikatora użytkownika próbując przełączyć rzeczywisty ID na podanego użytkownika. Program uwierzytelniający zostanie wywołany z opcją -s poprzedzającą nazwę użytkownika.

PW_LOGIN
    Wykonaj uwierzytelnienie dla danego użytkownika tworząc nową sesję pracy (loginową). Program uwierzytelniający zostanie wywołany z opcją -l, po której wystąpi nazwa użytkownika.

PW_ADD
    Utwórz nowy wpis dla danego użytkownika. Pozwala to programowi uwierzytelniania na zainicjowanie miejsca dla nowego użytkownika. Program zostanie wywołany z opcją -a, po której wystąpi nazwa użytkownika.

PW_CHANGE
    Zmień istniejący wpis dla danego użytkownika. Pozwala to na programowi uwierzytelniającemu na zmianę informacji autentykującej dla istniejącego użytkownika. Program zostanie wywołany z opcją -c poprzedzającą nazwę użytkownika.

PW_DELETE
    Usuń informację autentykującą dla danego użytkownika. Pozwala programowi uwierzytelniania na odzyskanie miejsca po użytkowniku, który nie będzie już identyfikowany przy użyciu tego programu. Program uwierzytelniania zostanie wywołany z opcją -d, po której wystąpi nazwa użytkownika.

PW_TELNET
    Wykonaj uwierzytelnianie użytkownika podłączającego się do systemu przy pomocy polecenia telnet. Program zostanie wywołany z opcją -t, po której wystąpi nazwa użytkownika.

PW_RLOGIN
    Wykonaj uwierzytelnienie użytkownika podłączającego się do systemu przy pomocy polecenia rlogin. Program zostanie wywołany z opcją -r, po której wystąpi nazwa użytkownika.

PW_FTP
    Wykonaj uwierzytelnienie użytkownika podłączającego się do systemu przy pomocy polecenia ftp. Program uwierzytelniania zostanie wywołany z opcją -f, po której wystąpi nazwa użytkownika. Do komunikacji z użytkownikiem NIE są dostępne standardowe deskryptory plików. Deskryptor standardowego wejścia zostanie podłączony do procesu macierzystego, zaś pozostałe dwa deskryptory plików dostaną podłączone do /dev/null. Funkcja pw_auth będzie potokować pojedynczy wiersz danych do programu uwierzytelniania posługując się deskryptorem 0.

PW_REXEC
    Wykonaj uwierzytelnienie użytkownika podłączającego się do systemu przy pomocy polecenia rexec. Program zostanie wywołany z opcją -x, po której wystąpi nazwa użytkownika. Do komunikacji ze zdalnym użytkownikiem NIE są dostępne standardowe deskryptory plików. Deskryptor standardowego wejścia zostanie podłączony do procesu macierzystego, zaś pozostałe dwa deskryptory plików dostaną podłączone do /dev/null. Funkcja pw_auth będzie potokować pojedynczy wiersz danych do programu uwierzytelniania posługując się deskryptorem 0.

Ostatni argument stanowi dane autentykacji, używane przez PW_FTP oraz PW_REXEC Jest on traktowany jak pojedynczy wiersz tekstu potokowany do programu uwierzytelniającego. Dla PW_CHANGE wartość input jest wartością poprzedniej nazwy użytkownika, jeśli zmieniana jest nazwa.

PRZESTROGI
Funkcja ta nie tworzy faktycznej sesji. Wskazuje jedynie, czy użytkownik powinien otrzymać zezwolenie na jej utworzenie.

Obecnie opcje sieciowe nie są jeszcze przetestowane.

DIAGNOSTYKA
Funkcja pw_auth zwraca 0 jeśli program uwierzytelniania zakończył działanie z zerowym kodem powrotu, w przeciwnym wypadku wartość niezerową.

ZOBACZ TAKŻE
login(1), passwd(1), su(1), useradd(8), userdel(8), usermod(8)

AUTOR
Julianne Frances Haugh (jockgrrl@ix.netcom.com)