Provided by: manpages-pl-dev_0.7-1_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/.

Linux                                              2002-04-23                                          ACCESS(2)