Provided by: manpages-pl-dev_0.7-2_all bug

NAZWA

       access - sprawdzenie praw użytkownika do pliku

SKŁADNIA

       #include <unistd.h>

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

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       access  sprawdza,  czy  proces może odczytywać, zapisywać i sprawdzać istnienie pliku (lub
       innego obiektu systemu  plików)  o  nazwie  pathname.   Jeśli  pathname  jest  dowiązaniem
       symbolicznym, sprawdzane są prawa do pliku wskazywanego przez to dowiązanie.

       mode  jest maską składającą się z jednego lub więcej znaczników spośród 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 katalogów, występujących na ścieżce do pliku, podanej w parametrze
       pathname, a także od praw do katalogów i plików wskazywanych przez występujące  po  drodze
       dowiązania 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 łatwe określenie autoryzacji użytkownika wywołującego.

       Sprawdzane  są  jedynie  bity  dostępu,  nie zawartość pliku czy jego typ.  Dlatego, jeśli
       katalog okazuje się "zapisywalny", znaczy to prawdopodobnie, że można w nim tworzyć pliki,
       a  nie,  że  do  katalogu  można  pisać  jak  do  pliku.  Podobnie, plik DOS-u może zostać
       określony jako "wykonywalny", lecz funkcja execve(2) mimo to zawiedzie.

       Jeśli proces  posiada  odpowiednie  uprawninia,  implementacja  może  spowodować  pomyślne
       zakończenie dla X_OK nawet, gdy nie jest ustawiony żaden z bitów uruchamialności w prawach
       dostępu do pliku.

WARTOŚĆ ZWRACANA

       Gdy wszystko pójdzie dobrze (wszystkie żądane prawa są zapewnione), zwracane jest zero.  W
       wypadku  błędu  (przynajmniej jeden bit z żądanych w mode uprawnień nie jest ustawiony lub
       wystąpiły inne błędy), zwracane jest -1 i odpowiednio ustawiane jest errno.

BŁĘDY

       Funkcja access musi zakończyć się niepomyślnie gdy:

       EACCES Brak uprawnień dla żądanego dostępu do pliku, albo brak uprawnień  do  przeglądania
              dla któregoś z katalogów w pathname.

       ELOOP  Napotkano zbyt wiele dowiązań symbolicznych podczas rozwiązywania pathname.

       ENAMETOOLONG
              pathname jest zbyt długie.

       ENOENT Składnik  pathname  będący  katalogiem  byłby  dostępny,  ale nie istnieje lub jest
              wiszącym dowiązaniem symbolicznym.

       ENOTDIR
              Składnik pathname, który powinien być katalogiem w  rzeczywistości  katalogiem  nie
              jest.

       EROFS  Żądano zapisu do pliku położonego w systemie plików tylko do odczytu.

       EFAULT pathname wskazuje poza dostępną dla użytkownika przestrzeń adresową.

       EINVAL mode zostało nieprawidłowo podane.

       EIO    Wystąpił błąd wejścia/wyjścia.

       ENOMEM Nie  starczyło pamięci kernela.  TP ETXTBSY Wystąpiła próba dostępu z prawem zapisu
              do pliku aktualnie uruchomionego programu.

OGRANICZENIA

       access zwraca błąd, jeśli jakikolwiek z żądanych w wywołaniu rodzajów dostępu nie zostanie
       zapewniony, nawet jeśli reszta zostanie.

       access  może  nie  działać  prawidłowo na systemach plików NFS z włączonym mapowaniem UID,
       ponieważ mapowanie to jest dokonywane na serwerze i ukryte  przed  klientem  sprawdzającym
       prawa dostępu.

       Użycie  funkcji  access  w  celu sprawdzenia, czy użytkownik ma uprawnienia na przykład do
       otwarcia  pliku,  przed  otwarciem  tego  pliku  za  pomocą  open(2)   tworzy   dziurę   w
       bezpieczeństwie,   ponieważ   użytkownik  może  wykorzystać  krótki  okres  czas  pomiędzy
       sprawdzeniem pliku a otwarciem go do manipulacji na pliku.

ZGODNE Z

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

ZOBACZ TAKŻE

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

INFORMACJE O TŁUMACZENIU

       Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia  Manuali  i  może
       nie  być  aktualne.  W  razie  zauważenia  różnic  między  powyższym opisem a rzeczywistym
       zachowaniem opisywanego programu lub  funkcji,  prosimy  o  zapoznanie  się  z  oryginalną
       (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 2 access

       Prosimy  o  pomoc  w  aktualizacji stron man - więcej informacji można znaleźć pod adresem
       http://sourceforge.net/projects/manpages-pl/.