access

ACCESS(2)                        Systemaufrufe                       ACCESS(2)



BEZEICHNUNG
       access - prüft die Zugriffsrechte eines Users an einer Datei

ÃBERSICHT
       #include <unistd.h>

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

BESCHREIBUNG
       access prüft ob es dem Prozeà erlaubt wäre, auf die Datei pathname
       (oder ein anderes Dateisystemobjekt) lesend, schreibend oder testend
       zuzugreifen.  Wenn pathname ein symbolischer Verweis ist, werden die
       Zugriffsrechte der referenzierten Datei geprüft.

       Mode ist eine Bitmaske die aus einem oder mehrerer der Werte R_OK,
       W_OK, X_OK and F_OKbesteht.

       R_OK, W_OK and X_OK verlangt prüft die Schreib- Lese- bzw.
       Ausführungsrechte.  F_OK prüft ob weitere Tests für die Existenz der
       Datei erlaubt sind.  Dieses hängt von den Zugriffsrechten der
       Verzeichnisse ab, die im Pfad pathname vorkommen, und von den
       Zugriffsrechten der Verzeichnisse und Dateien, die durch symbolische
       Verweise referenziert werden.

       Dieser Test wird mit der realen uid und gid des Prozesses
       durchgeführt, nicht mit den effektiven Id's.  Dadurch haben set-UID
       Programme die Möglichkeit die wahren Zugriffsrechte des Aufrufers
       festzustellen.

       Es werden nur die Zugriffsrechte geprüft, nicht der Dateityp oder
       dessen Inhalt.  Dies bedeutet für Verzeichnisse, daà in einem
       Verzeichnis, das als "beschreibbar" erkannt wurde, Dateien angelegt
       werden können, aber das Verzeichnis selbst nicht wie eine Datei
       beschreiben werden kann.  Eine DOS-Datei kann als "ausführbar"
       gekennzeichnet sein, jedoch wird ein Aufruf von execve(2) trotzdem
       fehlschlagen.


RÃCKGABEWERT
       Bei Erfolg (alle angeforderten Zugriffsrechte passen) wird Null
       zurückgegeben.  Bei einem Fehler (mindestens eine in mode angeforderte
       Zugriffsart wurde verboten, oder ein anderer Fehler ist aufgetreten)
       wird -1 zurückgegeben und errno entsprechend gesetzt.

ERRORS
       EACCES Der gewünschte Zugriff würde verboten werden, entweder auf die
              Datei selbst oder auf eines der Verzichnisse in pathname.

       EFAULT pathname zeit auf eine Adresse auÃerhalb des Benutzer-
              Adressraums.

       EINVAL mode wurde falsch angegeben.

       ENAMETOOLONG
              pathname ist zu lang.

       ENOENT Eine Verzeichnis-Komponente von pathname wuerde zwar zugreifbar
              bein, existiert jedoch nicht, oder ist ein toter symbolischer
              Verweis.

       ENOTDIR
              Ein Teil von pathname wird als Verzeichnis benutzt obwohl es
              keines ist.

       ENOMEM Es war nicht genügend Kernel-Memory verfügbar.

       ELOOP  pathname beinhaltet einen Verweis auf einen zirkulären
              symbolischen Link, beziehungsweise auf einen symbolischen Link
              der wieder auf sich selbst verweist.

WARNUNG
       access gibt einen Fehler zurück, wenn einer der angeforderten
       Zugriffsrechnte nicht paÃt, unabhängig davon, daà andere Typen
       vielleicht erfolgreich wären.

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

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



Linux 1.1.46                     10. Juni 1996                       ACCESS(2)