Provided by:
manpages-pl-dev_20060617-3_all 
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.