focal (2) faccessat.2.gz

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/.