Rechercher une page de manuel

Chercher une autre page de manuel:

access

Autres langues

Langue: pl

Version: 2002-04-23 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

NAZWA

access - sprawdzenie praw u¿ytkownika do pliku

SK£ADNIA


#include <unistd.h>



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

OPIS

access sprawdza, czy proces mo¿e odczytywaæ, zapisywaæ i sprawdzaæ istnienie pliku (lub innego obiektu systemu plików) o nazwie pathname. Je¶li pathname jest dowi±zaniem symbolicznym, sprawdzane s± prawa do pliku wskazywanego przez to dowi±zanie.

mode jest mask± sk³adaj±c± siê z jednego lub wiêcej znaczników spo¶ród R_OK, W_OK, X_OK i F_OK.

R_OK, W_OK i X_OK sprawdzaj±, czy plik istnieje i ma odpowiednio prawa do odczytu, zapisu i uruchamiania. F_OK sprawdza tylko, czy plik istnieje.

Testy zale¿± od praw do katalogów, wystêpuj±cych na ¶cie¿ce do pliku, podanej w parametrze pathname, a tak¿e od praw do katalogów i plików wskazywanych przez wystêpuj±ce po drodze dowi±zania symboliczne.

Sprawdzenie jest dokonywane z prawdziwymi uid i gid procesu, a nie efektywnymi, jak to siê zwykle robi przy wykonywaniu rzeczywistych operacji. Pozwala to programom z ustawionym bitem set-UID na ³atwe okre¶lenie autoryzacji u¿ytkownika wywo³uj±cego.

Sprawdzane s± jedynie bity dostêpu, nie zawarto¶æ pliku czy jego typ. Dlatego, je¶li katalog okazuje siê "zapisywalny", znaczy to prawdopodobnie, ¿e mo¿na w nim tworzyæ pliki, a nie, ¿e do katalogu mo¿na pisaæ jak do pliku. Podobnie, plik DOS-u mo¿e zostaæ okre¶lony jako "wykonywalny", lecz funkcja execve(2) mimo to zawiedzie.

Je¶li proces posiada odpowiednie uprawninia, implementacja mo¿e spowodowaæ pomy¶lne zakoñczenie dla X_OK nawet, gdy nie jest ustawiony ¿aden z bitów uruchamialno¶ci w prawach dostêpu do pliku.

WARTO¦Æ ZWRACANA

Gdy wszystko pójdzie dobrze (wszystkie ¿±dane prawa s± zapewnione), zwracane jest zero. W wypadku b³êdu (przynajmniej jeden bit z ¿±danych w mode uprawnieñ nie jest ustawiony lub wyst±pi³y inne b³êdy), zwracane jest -1 i odpowiednio ustawiane jest errno.

B£ÊDY

Funkcja access musi zakoñczyæ siê niepomy¶lnie gdy:
EACCES
Brak uprawnieñ dla ¿±danego dostêpu do pliku, albo brak uprawnieñ do przegl±dania dla którego¶ z katalogów w pathname.
ELOOP
Napotkano zbyt wiele dowi±zañ symbolicznych podczas rozwi±zywania pathname.
ENAMETOOLONG
pathname jest zbyt d³ugie.
ENOENT
Sk³adnik pathname bêd±cy katalogiem by³by dostêpny, ale nie istnieje lub jest wisz±cym dowi±zaniem symbolicznym.
ENOTDIR
Sk³adnik pathname, który powinien byæ katalogiem w rzeczywisto¶ci katalogiem nie jest.
EROFS
¯±dano zapisu do pliku po³o¿onego w systemie plików tylko do odczytu.
EFAULT
pathname wskazuje poza dostêpn± dla u¿ytkownika przestrzeñ adresow±.
EINVAL
mode zosta³o nieprawid³owo podane.
EIO
Wyst±pi³ b³±d wej¶cia/wyj¶cia.
ENOMEM
Nie starczy³o pamiêci kernela. TP ETXTBSY Wyst±pi³a próba dostêpu z prawem zapisu do pliku aktualnie uruchomionego programu.

OGRANICZENIA

access zwraca b³±d, je¶li jakikolwiek z ¿±danych w wywo³aniu rodzajów dostêpu nie zostanie zapewniony, nawet je¶li reszta zostanie.

access mo¿e nie dzia³aæ prawid³owo na systemach plików NFS z w³±czonym mapowaniem UID, poniewa¿ mapowanie to jest dokonywane na serwerze i ukryte przed klientem sprawdzaj±cym prawa dostêpu.

U¿ycie funkcji access w celu sprawdzenia, czy u¿ytkownik ma uprawnienia na przyk³ad do otwarcia pliku, przed otwarciem tego pliku za pomoc± open(2) tworzy dziurê w bezpieczeñstwie, poniewa¿ u¿ytkownik mo¿e wykorzystaæ krótki okres czas pomiêdzy sprawdzeniem pliku a otwarciem go do manipulacji na pliku.

ZGODNE Z

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

ZOBACZ TAK¯E

stat(2), open(2), chmod(2), chown(2), setuid(2), setgid(2)
Être aware : "Y a des gens qui n'ont pas réussi parce qu'ils ne sont pas
aware, ils ne sont pas "au courant". Ils ne sont pas à l'attention de
savoir qu'ils existent. Les pauvres, ils savent pas. Il faut réveiller
les gens. C'est-à-dire qu'y a des gens qui font leur travail, qui font
leurs études, ils ont un diplôme, ils sont au contact tout ça. Tu as un
rhûme et tu fais toujours "snif". Faut que tu te mouches. Tu veux un
mouchoir ? Alors y a des gens comme ça qui ne sont pas aware. Moi je
suis aware tu vois, c'est un exemple, je suis aware."
-+- Jean-Claude VanDamme -+-