Rechercher une page de manuel
getlogin
Langue: pl
Version: 1995-09-03 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
NAZWA
getlogin, cuserid - odczytanie nazwy u¿ytkownikaSK£ADNIA
#include <unistd.h>char *getlogin(void);
#include <stdio.h>
char *cuserid(char *string);
OPIS
getlogin zwraca wska¼nik do ³añcucha zawieraj±cego nazwê u¿ytkownika zalogowanego na terminalu steruj±cym procesu, lub wska¼nik NULL, je¶li nie mo¿na tej informacji okre¶liæ. £añcuch ten jest alokowany statycznie i mo¿e zostaæ nadpisany przez pó¼niejsze wywo³anie tej funkcji lub funkcji cuserid.cuserid zwraca wska¼nik do ³añcucha zawieraj±cego nazwê u¿ytkownika skojarzonego z efektywnym identyfikatorem u¿ytkownika dla procesu. Je¶li string nie jest wska¼nikiem NULL, powinien on byæ tablic±, która mo¿e pomie¶ciæ co najmniej L_cuserid znaków; ³añcuch jest zwracany w tej tablicy. W przeciwnym przypadku, zwracany jest wska¼nik do ³añcucha w obszarze pamiêci statycznej. £añcuch ten jest alokowany statycznie i mo¿e zostaæ nadpisany przez pó¼niejsze wywo³ania tej funkcji lub funkcji getlogin.
Makro L_cuserid jest sta³± ca³kowit± okre¶laj±c±, jaka du¿a tablica mo¿e byæ potrzebna do przechowania nazwy u¿ytkownika. L_cuserid jest zadeklarowane w stdio.h.
Funkcje te pozwalaj± programowi pozytywnie zidentyfikowaæ u¿ytkownika, na prawach którego dzia³a program (cuserid) lub u¿ytkownika zalogowanego w danej sesji (getlogin). (Mog± to byæ ró¿ni u¿ytkownicy, gdy wchodz± w grê programy setuid-owe.)
W wiêkszo¶ci zastosowañ, bardziej przydatne dla okre¶lenia kim jest u¿ytkownik jest pos³ugiwanie siê zmienn± ¶rodowiskow± LOGNAME. Jest to bardziej elastyczne, w³a¶nie dlatego, ¿e u¿ytkownik mo¿e dowolnie ustawiæ LOGNAME.
B£ÊDY
- ENOMEM
- Zabrak³o pamiêci na przydzielenie struktury passwd.
PLIKI
/etc/passwd plik bazy danych z has³ami
/var/run/utmp (tradicyjnie /etc/utmp; niektóre wersje libc u¿ywa³y /var/adm/utmp)
ZGODNE Z
POSIX.1. System V zawiera funkcjê cuserid, która pos³uguje siê raczej rzeczywistym identyfikatorem u¿ytkownika, ni¿ efektywnym identyfikatorem u¿ytkownika. Funkcjê cuserid w³±czono w wersji POSIX z roku 1988, ale usuniêto j± w wersji z roku 1990.USTERKI
Na nieszczê¶cie, raczej ³atwo jest og³upiæ getlogin(). Czasem nie dzia³a ona wcale, gdy¿ jaki¶ program namiesza³ w pliku utmp. Czêsto zwraca ona jedynie pierwszych 8 znaków nazwy logowania. Ponadto, u¿ytkownik aktualnie 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æ getlogin().Nikt dok³adnie nie wie, co robi cuserid() - nale¿y jej unikaæ w przeno¶nych programach - nale¿y jej w ogóle unikaæ i u¿ywaæ zamiast niej getpwuid(geteuid()), je¶li jest to to, czego potrzeba. NIE NALE¯Y U¯YWAÆ cuserid().
ZOBACZ TAK¯E
geteuid(2), getuid(2)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre