tail head cat sleep
QR code linking to this page

Manpage  — ACCESS

BEZEICHNUNG

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

INHALT

Ü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).

10. Juni 1996 ACCESS (2) Linux 1.1.46

tail head cat sleep
QR code linking to this page


Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.

One of the advantages of using UNIX to teach an operating systems course is the sources and documentation will easily fit into a student's briefcase.
— John Lions