Provided by: manpages-de-dev_0.5-4.1ubuntu1_all bug

BEZEICHNUNG

       access - prüft die Zugriffsrechte eines Benutzers an einer Datei

ÜBERSICHT

       #include <unistd.h>

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

BESCHREIBUNG

       access  prüft,  ob  es dem Prozess 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  mehreren  der  Werte  R_OK,
       W_OK, X_OK und F_OKbesteht.

       R_OK,   W_OK   und   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,  dass  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 Verzeichnisse 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  passt,  unabhängig  davon,  dass  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).