getpw(3)

NAZWA
getpw - rekonstruuje wpis z pliku haseł

BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)

SKŁADNIA
#define _GNU_SOURCE             /* Zob. feature_test_macros(7) */
#include <sys/types.h>
#include <pwd.h>

[[przestarzałe]] int getpw(uid_t uid, char *buf);

OPIS
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).

WARTOŚĆ ZWRACANA
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.

BŁĘDY

0 lub ENOENT
    Brak użytkownika odpowiadającego identyfikatorowi uid.

EINVAL
    buf ma wartość NULL.

ENOMEM
    Zabrakło pamięci na przydzielenie struktury passwd.

PLIKI

/etc/passwd
    baza danych o hasłach

ATRYBUTY
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-bezpieczne locale

STANDARDY
Brak.

HISTORIA
SVr2.

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

ZOBACZ TAKŻE
endpwent(3), fgetpwent(3), getpwent(3), getpwnam(3), getpwuid(3), putpwent(3), setpwent(3), passwd(5)

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: 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 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

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