GETPW(3) Podręcznik programisty Linuksa GETPW(3)

getpw - rekonstrukcja wpisu z pliku passwd.

#define _GNU_SOURCE             /* See feature_test_macros(7) */
#include <sys/types.h>
#include <pwd.h>
int getpw(uid_t uid, char *buf);

Funkcja getpw() rekonstruuje linię wpisu w pliku passwd dla użytkownika określonego przez uid. Wynik jest zapisywany do bufora buf. Zwrócony bufor zawiera linię postaci:


name:passwd:uid:gid:gecos:dir:shell

Struktura passwd jest następująco zdefiniowana w pliku <pwd.h>:


struct passwd {

char *pw_name; /* nazwa użytkownika */
char *pw_passwd; /* hasło użytkownika */
uid_t pw_uid; /* identyfikator użytkownika */
gid_t pw_gid; /* identyfikator grupy */
char *pw_gecos; /* informacje o użytkowniku */
char *pw_dir; /* katalog domowy */
char *pw_shell; /* program powłoki */ };

Więcej informacji o polach w tej strukturze można znaleźć w podręczniku passwd(5).

Po pomyślnym zakończeniu getpw() zwraca zero, po błędzie zwraca -1 i odpowiednio ustawia errno, wskazując na rodzaj błędu.

Jeśli w bazie danych haseł nie znaleziono identyfikatora uid, to getpw() zwraca -1, ustawia errno na 0 i pozostawia buf w stanie niezmienionym.

0 lub ENOENT
Brak użytkownika odpowiadającego identyfikatorowi uid.
buf ma wartość NULL.
Zabrakło pamięci na przydzielenie struktury passwd.

/etc/passwd
baza danych o hasłach

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).

Interfejs Atrybut Wartość
getpw() Bezpieczeństwo wątkowe MT-Safe locale

SVr2.

Funkcja getpw() jest niebezpieczna, gdyż może przepełnić udostępniony bufor buf. Została zastąpiona przez getpwuid(3).

endpwent(3), fgetpwent(3), getpwent(3), getpwnam(3), getpwuid(3), putpwent(3), setpwent(3), passwd(5)

Angielska wersja tej strony pochodzi z wydania 5.13 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Robert Luberda <robert@debian.org>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres manpages-pl-list@lists.sourceforge.net.

22 marca 2021 r. GNU