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)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 -+-
Contenus ©2006-2008 Benjamin Poulain
Design ©2006-2008 Maxime Vantorre