Rechercher une page de manuel
access
Langue: pl
Version: 2002-04-23 (openSuse - 09/10/07)
Section: 2 (Appels système)
NAZWA
access - sprawdzenie praw u¿ytkownika do plikuSK£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.3ZOBACZ TAK¯E
stat(2), open(2), chmod(2), chown(2), setuid(2), setgid(2)Contenus ©2006-2023 Benjamin Poulain
Design ©2006-2023 Maxime Vantorre