Manpages

JMÉNO

access − kontroluje přístupová práva k souboru

SYNTAXE

#include <unistd.h>

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

POPIS

access kontroluje, zda proces může číst či zapisovat do souboru (nebo jiného objektu souborového systému) se jménem pathname . Lze jej také použít ke zjištění existence pathname . Pokud je pathname symbolický odkaz, pak jsou testována přístupová práva souboru, na který odkaz směřuje.

mode je maska obsahující jednu či více těchto možností: R_OK, W_OK, X_OK a F_OK.

R_OK, W_OK a X_OK provede testování, zda soubor existuje a má pro běžící proces nastavená práva ke čtení (Read), psaní (Write) a vykonání (eXecute). F_OK kontroluje pouze existenci souboru.

Výsledek testu závisí na přístupových právech adresářů, jež náleží cestě k souboru pathname, a na přístupových právech adresářů a souborů, na které směřují symbolické odkazy na cestě.

Kontrola je provedena se skutečným uid a gid procesu. Nebere se zřetel na efektivní id, které se projeví při souborové operaci. Tak mohou setuid programy snadno zjistit skutečná práva uživatele.

Kontrolují se pouze příznakové bity; ne typ souboru či jeho obsah. Pokud je adresář "zápisu schopný", lze v něm pravděpodobně tvořit soubory - nemůžeme do něj zapisovat, jako do běžného souboru. Zrovna tak DOSový soubor může být "spustitelný", ale execve(2) bude stále protestovat.

NÁVRATOVÁ HODNOTA

Při úspěchu (všechna kontrolovaná práva jsou dostupná) vrací nulu. Při neúspěchu (alespoň jeden druh přístupu reprezentovaný příslušným bitem z mode je odepřen, nebo nastane jiná chyba), vrací −1, a proměnná errno je nastavena.

CHYBY

EACCES

Požadovaný přístup by byl odepřen.

EFAULT

pathname odkazuje někam mimo přístupný adresovatelný diskový prostor.

EINVAL

mode je zadán chybně.

ENAMETOOLONG

pathname je příliš dlouhý.

ENOENT

Adresáře v pathname by mohly být přístupné, ale neexistují, nebo jsou to volné symbolické odkazy.

ENOTDIR

Části pathname použité jako adresáře ve skutečnosti nejsou adresáře

ENOMEM

Málo paměti jádra.

ELOOP

pathname obsahuje cyklický symbolický odkaz, např. symbolický odkaz odkazuje sám na sebe.

OMEZENÍ

access vrací chybu i kdyby jeden jediný druh přístupu byl odepřen a všechny ostatní umožněny.

access může zlobit na NFS souborových systémech, které mají zapnuté mapování UID, protože mapovaní UID je prováděno na serveru a je skryto před klienty.

SPLŇUJE STANDARDY

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

DALŠÍ INFORMACE

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

VAROVÁNÍ

Překlad je pravděpodobně zastaralý. Pokud chcete pomoci s jeho aktualizací, zamiřte na http://man-pages-cs-wiki.homelinux.net/