access
określa czy dostęp do pliku jest możliwy
1. access.1.man
Manpage of ACCESS
ACCESS
Section: User Commands (1)Updated: 4 stycznia 1998
Index Return to Main Contents
NAZWA
access - określa czy dostęp do pliku jest możliwySKŁADNIA
access -tryb plikOPIS
Pomyślnie kończy pracę, jeżeli plik jest dostępny z podanymi prawami. Tryb to jedna lub więcej liter spośród rwx, gdzie r to prawo odczytu, w zapisu, a x wykonania.Access i test różnią się tym, że to drugie patrzy na bity praw, podczas gdy pierwsze z nich sprawdza używając wywołania systemowego access(2). Różnica uwidacznia się, gdy system plików zostanie zamontowany w trybie tylko do odczytu.
OPCJE
access przyjmuje następujące opcje dodatkowe:- --help
- Wyświetla tekst pomocy i kończy pracę.
- --version
- Wyświetla informacje o wersji i kończy pracę.
ZOBACZ TAKŻE
access(2)
Index
This document was created by man2html using the manual pages.
Time: 00:24:41 GMT, November 20, 2008
2. access.2.man
Manpage of ACCESS
ACCESS
Section: Podręcznik programisty Linuksa (2)Updated: 2002-04-23
Index Return to Main Contents
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)
Index
This document was created by man2html using the manual pages.
Time: 00:24:41 GMT, November 20, 2008


