Provided by: manpages-pl-dev_20060617-1_all bug

NAZWA

       getlogin, cuserid - odczytanie nazwy użytkownika

SKŁ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)