.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1995 James R. Van Zandt .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Changed Tue Sep 19 01:49:29 1995, aeb: moved from man2 to man3 .\" added ref to /etc/utmp, added BUGS section, etc. .\" modified 2003 Walter Harms, aeb - added getlogin_r, note on stdin use .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getlogin 3 "20 lipca 2023 r." "Linux man\-pages 6.05.01" .SH NAZWA getlogin, getlogin_r, cuserid \- odczytanie nazwy użytkownika .SH BIBLIOTEKA Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP) .SH SKŁADNIA .nf \fB#include \fP .PP \fBchar *getlogin(void);\fP \fBint getlogin_r(char \fP\fIbuf\fP\fB[.\fP\fIbufsize\fP\fB], size_t \fP\fIbufsize\fP\fB);\fP .PP \fB#include \fP .PP \fBchar *cuserid(char *\fP\fIstring\fP\fB);\fP .fi .PP .RS -4 Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)): .RE .PP \fBgetlogin_r\fP(): .nf .\" Deprecated: _REENTRANT || _POSIX_C_SOURCE >= 199506L .fi .PP \fBcuserid\fP(): .nf Since glibc 2.24: (_XOPEN_SOURCE && ! (_POSIX_C_SOURCE >= 200112L) || _GNU_SOURCE Up to and including glibc 2.23: _XOPEN_SOURCE .fi .SH OPIS \fBgetlogin\fP() zwraca wskaźnik do napisu zawierającego nazwę użytkownika zalogowanego na terminalu sterującym procesu lub wskaźnik null, jeśli nie można tej informacji określić. Napis jest alokowany statycznie i może zostać nadpisany przez późniejsze wywołanie tej funkcji lub funkcji \fBcuserid\fP(). .PP \fBgetlogin_r\fP() zwraca tę samą nazwę użytkownika w tablicy \fIbuf\fP o rozmiarze \fIbufsize\fP. .PP \fBcuserid\fP() zwraca wskaźnik do napisu zawierającego nazwę użytkownika skojarzonego z efektywnym identyfikatorem użytkownika procesu. Jeśli \fIstring\fP nie jest wskaźnikiem null, to powinien być tablicą, która może pomieścić co najmniej \fBL_cuserid\fP znaków; napis jest zwracany w tej tablicy. W przeciwnym przypadku, zwracany jest wskaźnik do napisu w obszarze pamięci statycznej. Napis jest alokowany statycznie i może zostać nadpisany przez późniejsze wywołania tej funkcji lub funkcji \fBgetlogin\fP(). .PP Makro \fBL_cuserid\fP jest stałą całkowitą określającą, jaka duża tablica może być potrzebna do przechowania nazwy użytkownika. \fBL_cuserid\fP jest zadeklarowane w \fI\fP. .PP Funkcje te pozwalają programowi pozytywnie zidentyfikować użytkownika, na prawach którego działa program (\fBcuserid\fP()) lub użytkownika zalogowanego w danej sesji (\fBgetlogin\fP(). (Mogą to być różni użytkownicy, gdy wchodzą w grę programy z ustawionym bitem set\-user\-ID). .PP W większości zastosowań, bardziej przydatne dla określenia, kim jest użytkownik, jest posługiwanie się zmienną środowiskową \fBLOGNAME\fP. Jest to bardziej elastyczne, właśnie dlatego, że użytkownik może dowolnie ustawić \fBLOGNAME\fP. .SH "WARTOŚĆ ZWRACANA" \fBgetlogin\fP() returns a pointer to the username when successful, and NULL on failure, with \fIerrno\fP set to indicate the error. \fBgetlogin_r\fP() returns 0 when successful, and nonzero on failure. .SH BŁĘDY POSIX specifies: .TP \fBEMFILE\fP Zostało osiągnięte ograniczenie na liczbę otwartych deskryptorów plików dla procesu. .TP \fBENFILE\fP Zostało osiągnięte systemowe ograniczenie na całkowitą liczbę otwartych plików. .TP \fBENXIO\fP Proces wywołujący nie ma przypisanego terminala sterującego. .TP \fBERANGE\fP (getlogin_r) The length of the username, including the terminating null byte (\[aq]\e0\[aq]), is larger than \fIbufsize\fP. .PP Linux/glibc also has: .TP \fBENOENT\fP Brak odpowiedniego wpisu w pliku utmp. .TP \fBENOMEM\fP Zabrakło pamięci na przydzielenie struktury passwd. .TP \fBENOTTY\fP Standardowe wejście nie odnosi się do terminala (patrz USTERKI). .SH PLIKI .TP \fI/etc/passwd\fP baza danych o hasłach .TP \fI/var/run/utmp\fP (tradycyjnie \fI/etc/utmp\fP; niektóre wersje libc używały \fI/var/adm/utmp\fP) .SH ATRYBUTY Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku \fBattributes\fP(7). .TS allbox; lb lb lbx l l l. Interfejs Atrybut Wartość T{ .na .nh \fBgetlogin\fP() T} Bezpieczeństwo wątkowe T{ .na .nh MT\-Unsafe race:getlogin race:utent sig:ALRM timer locale T} T{ .na .nh \fBgetlogin_r\fP() T} Bezpieczeństwo wątkowe T{ .na .nh MT\-Unsafe race:utent sig:ALRM timer locale T} T{ .na .nh \fBcuserid\fP() T} Bezpieczeństwo wątkowe T{ .na .nh MT\-Unsafe race:cuserid/!string locale T} .TE .sp 1 W powyższej tabeli \fIutent\fP w \fIrace:utent\fP oznacza, że jeśli któraś z funkcji \fBsetutent\fP(3), \fBgetutent\fP(3) lub \fBendutent\fP(3) jest używana równolegle w różnych wątkach programu, może nastąpić sytuacja wyścigu danych. Ponieważ \fBgetlogin\fP() i \fBgetlogin_r\fP() wywołują te funkcje, stąd dla przypomnienia użytkownikom używamy race:utent. .SH WERSJE OpenBSD ma \fBgetlogin\fP() i \fBsetlogin\fP() oraz nazwę użytkownika powiązanego z sesją, nawet jeśli nie ma on terminala sterującego. .SH STANDARDY .TP \fBgetlogin\fP() .TQ \fBgetlogin_r\fP() POSIX.1\-2008. .TP \fBcuserid\fP() None. .SH STANDARDY .TP \fBgetlogin\fP() .TQ \fBgetlogin_r\fP(): POSIX.1\-2001. OpenBSD. .TP \fBcuserid\fP() System V, POSIX.1\-1988. Removed in POSIX.1\-1990. SUSv2. Removed in POSIX.1\-2001. .IP System V has a \fBcuserid\fP() function which uses the real user ID rather than the effective user ID. .SH USTERKI Na nieszczęście, raczej łatwo jest ogłupić \fBgetlogin\fP(). Czasem nie działa ona wcale, gdyż jakiś program namieszał w pliku utmp. Często zwraca jedynie pierwszych 8 znaków nazwy logowania. Ponadto użytkownik obecnie zalogowany na terminalu sterującym programu nie musi być użytkownikiem, który ten program uruchomił. Ze względów związanych z bezpieczeństwem, należy unikać \fBgetlogin\fP(). .PP Proszę zauważyć, że glibc nie przestrzega wymagań POSIX i używa \fIstdin\fP zamiast \fI/dev/tty\fP. Jest to błąd. (Inne nowe systemy, takie jak SunOS 5.8, HP\-UX 11.11 i FreeBSD 4.8, zwracają nazwę zalogowanego użytkownika także wtedy, gdy \fIstdin\fP został przekierowany). .PP Nikt dokładnie nie wie, co robi \fBcuserid\fP(); należy jej unikać w przenośnych programach. W ogóle należy jej unikać i używać zamiast niej \fIgetpwuid(geteuid())\fP, jeśli jest to to, czego potrzeba. \fBNie należy używać\fP \fBcuserid\fP(). .SH "ZOBACZ TAKŻE" \fBlogname\fP(1), \fBgeteuid\fP(2), \fBgetuid\fP(2), \fButmp\fP(5) .PP .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz , Robert Luberda i Michał Kułach . .PP Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .