Manpages

NAAM

access − test gebruikers toestemming voor een bestand.

OVERZICHT

#include <unistd.h>

int access(const char *padnaam, int toestand);

BESCHRIJVING

access test of het een proces toegestaan is om te lezen, te schrijven of te testen voor het bestaan van het bestand (of ander bestandsysteem voorwerp) waarvan de naam padnaam is. Als padnaam een symbolische koppeling is worden de permissies van het bestand waar de koppeling naar wijst getest. toestand Is een masker bestaande uit een of meer van R_OK, W_OK, X_OK en F_OK.

R_OK, W_OK en X_OK vragen om te testen of het bestand bestaat en of het lees, schrijf en uitvoer toestemming geeft, respectievelijk. F_OK vraagt alleen maar om te testen of het bestand bestaat.

De test hangt af van de toestemmingen van de directories die voorkomen in de pad naar het bestand -opgegeven met padnaam- en van de toestemmingen van directories en bestanden, waar tussenliggende symbolische koppeling naar verwijzen.

De test wordt gedaan met het proces zijn echte uid en gid, in plaats van met de effectieve ids, zoals gedaan wordt bij het eigenlijke pogen van een operatie. Dit is om set-UID programma’s eenvoudig de macht van de gebruiker die het proces startte te laten bepalen.

Alleen toegangsbits worden getest, niet de bestandsoort of de inhoud. Daarom betekent het "schrijfbaar" zijn van een directory hier dat waarschijnlijk bestanden gemaakt kunnen worden in die directory, en niet dat in de directory zelf, als bestand, geschreven kan worden. Evenzo kan een DOS bestand "uitvoerbaar" zijn, terwijl de execve(2) aanroep toch zal mislukken.

EIND WAARDE

Bij success (alle gevraagde toestemmingen worden gegeven) wordt nul teruggegeven. Bij falen (minstens 1 bit in toestand vroeg om een toestemming die geweigerd wordt, of een andere fout trad op), wordt −1 teruggegeven, en errno wordt naar behoren gezet.

FOUTEN

EACCES

{toegang} De gevraagde toegang tot het bestand zou geweigerd worden, of zoek toestemming wordt geweigerd in een van de directories in padnaam.

EROFS

{alleen-lezen bs.} Schrijf toestemming werd gevraagd voor een bestand op een alleen-lezen bestandsysteem.

EFAULT

{fout} padnaam wijst buiten de voor u toegankelijke adresruimte.

EINVAL

{ongeldig} toestand werd ongeldig opgegeven.

ENAMETOOLONG

{naam te lang} padnaam is te lang.

ENOENT

{geen ingang} Een directorie-deel van padnaam zou toegankelijk geweest zijn maar bestaat niet of was een loshangende symbolische koppeling.

ENOTDIR

{geen dir} Een deel gebruikt als directory in padnaam is in feite geen directory.

ENOMEM

{geen geheugen} Onvoldoende kernelgeheugen voorhanden.

ELOOP

{cirkel} Teveel symbolische koppelingen werden tegengekomen bij het vaststellen van padnaam.

EIO

{in/uit} Een In/Uit fout trad op.

BEPERKINGEN

access geeft een fout terug als een van de toegangssoorten in de gevraagde aanroep geweigerd wordt, zelfs als andere soorten misschien zouden slagen.

access werkt wellicht niet goed op NFS bestandsystemen met UID afbeelding, omdat UID afbeeldingen gedaan worden op de server en verborgen zijn voor de cliënt, die de toestemmingen test.

Gebruiken van access om te testen of een gebruiker de macht heeft om een bestand te openen, vóór dat feitelijk te doen met open(2) veroorzaakt een beveiligings-gat, omdat de gebruiker het korte tijdsbestek tussen testen en openen zou kunnen gebruiken om het bestand te manipuleren.

VOLDOET AAN

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

ZIE

stat(2) {staat}, open(2) {open}, chmod(2) {verander toestand}, chown(2) {verander eigendom}, setuid(2) {zet uid}, setgid(2) {zet gid}

VERTALING

Dit is een handleiding uit manpages-dev 1.29. Alles wat tussen ’{’..’}’ staat is aanvullende vertaling, en hoort niet bij de originele handleiding. Email naar <manpages-nl [AT] nl.org>.

$Id: access.2,v 1.1.1.1 2004/03/21 21:02:25 cor Exp $