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

NAZWA

       access - sprawdzenie praw uytkownika do pliku

SK/LADNIA

       #include <unistd.h>

       int access(const char *pathname, int mode);

OPIS

       access   sprawdza,  czy  proces  moe  odczytywa,  zapisywa  i  sprawdza
       istnienie pliku (lub innego obiektu systemu plikow) o nazwie  pathname.
       Jeli pathname jest dowizaniem symbolicznym, sprawdzane s prawa do pliku
       wskazywanego przez to dowizanie.

       mode jest mask skladajc si z jednego lub wicej znacznikow sporod  R_OK,
       W_OK, X_OK i F_OK.

       R_OK,  W_OK  i X_OK sprawdzaj, czy plik istnieje i ma odpowiednio prawa
       do odczytu, zapisu i  uruchamiania.   F_OK  sprawdza  tylko,  czy  plik
       istnieje.

       Testy zale od praw do katalogow, wystpujcych na ciece do pliku, podanej
       w  parametrze  pathname,  a  take  od  praw  do  katalogow   i   plikow
       wskazywanych przez wystpujce po drodze dowizania symboliczne.

       Sprawdzenie  jest  dokonywane  z  prawdziwymi  uid i gid procesu, a nie
       efektywnymi, jak to  si  zwykle  robi  przy  wykonywaniu  rzeczywistych
       operacji.  Pozwala  to  programom  z  ustawionym bitem set-UID na latwe
       okrelenie autoryzacji uytkownika wywolujcego.

       Sprawdzane s jedynie bity dostpu,  nie  zawarto  pliku  czy  jego  typ.
       Dlatego,   jeli   katalog   okazuje   si   "zapisywalny",   znaczy   to
       prawdopodobnie, e mona w nim tworzy pliki, a nie, e  do  katalogu  mona
       pisa  jak  do  pliku.   Podobnie,  plik  DOS-u  moe zosta okrelony jako
       "wykonywalny", lecz funkcja execve(2) mimo to zawiedzie.

       Jeli proces posiada odpowiednie uprawninia, implementacja moe spowodowa
       pomylne  zakoczenie dla X_OK nawet, gdy nie jest ustawiony aden z bitow
       uruchamialnoci w prawach dostpu do pliku.

WARTO ZWRACANA

       Gdy wszystko  pojdzie  dobrze  (wszystkie  dane  prawa  s  zapewnione),
       zwracane  jest  zero. W wypadku bldu (przynajmniej jeden bit z danych w
       mode uprawnie nie jest ustawiony lub wystpily inne bldy), zwracane jest
       -1 i odpowiednio ustawiane jest errno.

B/LDY

       Funkcja access musi zakoczy si niepomylnie gdy:

       EACCES Brak  uprawnie dla danego dostpu do pliku, albo brak uprawnie do
              przegldania dla ktorego z katalogow w pathname.

       ELOOP  Napotkano zbyt wiele dowiza symbolicznych  podczas  rozwizywania
              pathname.

       ENAMETOOLONG
              pathname jest zbyt dlugie.

       ENOENT Skladnik   pathname  bdcy  katalogiem  bylby  dostpny,  ale  nie
              istnieje lub jest wiszcym dowizaniem symbolicznym.

       ENOTDIR
              Skladnik pathname, ktory powinien by katalogiem w  rzeczywistoci
              katalogiem nie jest.

       EROFS  dano  zapisu  do  pliku  poloonego  w  systemie  plikow tylko do
              odczytu.

       EFAULT pathname wskazuje poza dostpn dla uytkownika przestrze adresow.

       EINVAL mode zostalo nieprawidlowo podane.

       EIO    Wystpil bld wejcia/wyjcia.

       ENOMEM Nie starczylo pamici kernela.  TP ETXTBSY Wystpila proba  dostpu
              z prawem zapisu do pliku aktualnie uruchomionego programu.

OGRANICZENIA

       access  zwraca  bld,  jeli  jakikolwiek  z  danych w wywolaniu rodzajow
       dostpu nie zostanie zapewniony, nawet jeli reszta zostanie.

       access moe nie dziala prawidlowo na systemach  plikow  NFS  z  wlczonym
       mapowaniem  UID,  poniewa  mapowanie  to  jest dokonywane na serwerze i
       ukryte przed klientem sprawdzajcym prawa dostpu.

       Uycie funkcji access w celu sprawdzenia, czy uytkownik  ma  uprawnienia
       na  przyklad  do  otwarcia  pliku,  przed otwarciem tego pliku za pomoc
       open(2) tworzy dziur w bezpieczestwie, poniewa uytkownik moe wykorzysta
       krotki  okres  czas  pomidzy  sprawdzeniem  pliku  a  otwarciem  go  do
       manipulacji na pliku.

ZGODNE Z

       SVID, AT&T, POSIX, X/OPEN, BSD 4.3

ZOBACZ TAKE

       stat(2), open(2), chmod(2), chown(2), setuid(2), setgid(2)

INFORMACJE O T/LUMACZENIU

       Powysze tlumaczenie pochodzi z nieistniejcego ju  Projektu  Tlumaczenia
       Manuali  i  moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
       opisem a rzeczywistym zachowaniem  opisywanego  programu  lub  funkcji,
       prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.