ACCESS(2) Linux - Prirucka programatora ACCESS(2)
JMENO
access - kontroluje pristupova prava k souboru
SYNTAXE
#include <unistd.h>
int access(const char *pathname, int mode);
POPIS
access kontroluje, zda proces muze cist ci zapisovat do souboru (nebo
jineho objektu souboroveho systemu) se jmenem pathname . Lze jej take
pouzit ke zjisteni existence pathname . Pokud je pathname symbolicky
odkaz, pak jsou testovana pristupova prava souboru, na ktery odkaz
smeruje.
mode je maska obsahujici jednu ci vice techto moznosti: R_OK, W_OK,
X_OK a F_OK.
R_OK, W_OK a X_OK provede testovani, zda soubor existuje a ma pro
bezici proces nastavena prava ke cteni (Read), psani (Write) a vykonani
(eXecute). F_OK kontroluje pouze existenci souboru.
Vysledek testu zavisi na pristupovych pravech adresaru, jez nalezi
ceste k souboru pathname, a na pristupovych pravech adresaru a souboru,
na ktere smeruji symbolicke odkazy na ceste.
Kontrola je provedena se skutecnym uid a gid procesu. Nebere se zretel
na efektivni id, ktere se projevi pri souborove operaci. Tak mohou
setuid programy snadno zjistit skutecna prava uzivatele.
Kontroluji se pouze priznakove bity; ne typ souboru ci jeho obsah.
Pokud je adresar "zapisu schopny", lze v nem pravdepodobne tvorit sou-
bory - nemuzeme do nej zapisovat, jako do bezneho souboru. Zrovna tak
DOSovy soubor muze byt "spustitelny", ale execve(2) bude stale protes-
tovat.
NAVRATOVA HODNOTA
Pri uspechu (vsechna kontrolovana prava jsou dostupna) vraci nulu. Pri
neuspechu (alespon jeden druh pristupu reprezentovany prislusnym bitem
z mode je odepren, nebo nastane jina chyba), vraci -1, a promenna errno
je nastavena.
CHYBY
EACCES Pozadovany pristup by byl odepren.
EFAULT pathname odkazuje nekam mimo pristupny adresovatelny diskovy
prostor.
EINVAL mode je zadan chybne.
ENAMETOOLONG
pathname je prilis dlouhy.
ENOENT Adresare v pathname by mohly byt pristupne, ale neexistuji, nebo
jsou to volne symbolicke odkazy.
ENOTDIR
Casti pathname pouzite jako adresare ve skutecnosti nejsou
adresare
ENOMEM Malo pameti jadra.
ELOOP pathname obsahuje cyklicky symbolicky odkaz, napr. symbolicky
odkaz odkazuje sam na sebe.
OMEZENI
access vraci chybu i kdyby jeden jediny druh pristupu byl odepren a
vsechny ostatni umozneny.
access muze zlobit na NFS souborovych systemech, ktere maji zapnute
mapovani UID, protoze mapovani UID je provadeno na serveru a je skryto
pred klienty.
SPLNUJE STANDARDY
SVID, AT&T, POSIX, X/OPEN, BSD 4.3
DALSI INFORMACE
stat(2), open(2), chmod(2), chown(2), setuid(2), setgid(2).
Linux 1.2.13 4. zari 1998 ACCESS(2)