access

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)

Personal Tools