[ Pobierz całość w formacie PDF ]
.W niektórych systemach każdy użytkownik, który może zapisaćdane do pliku, może również usuwać plik.Tę funkcję dodano dosystemu po to, by zwykły użytkownik nie mógł usuwać plikówinnych użytkowników w katalogu /tmpW wielu starszych wersjach Unixa (na przykład w Systemie V przed wydaniem 4) możliwości tychnie było.W tych systemach bity SGID i klejące dla katalogów były ignorowane przez system.Wkilku z nich (w tym SVR3) ustawienie bitu SGID dla katalogu miało skutek taki jak ustawienie bituklejącego.Bit SGID plików (tylko w Systemie V) - MRLJeśli w AT&T System V Unix ustawi się bit SGID pliku niewykonywalnego, dla pliku zastosowanabędzie obligatoryjna blokada.W Unixie normalne blokowanie rekordów jest swobodne, procesymogą modyfikować zablokowany plik, ignorując po prostu status blokady rekordów.W Systemie Vjądro zablokuje proces, który podejmie próbę uzyskania dostępu do pliku (lub jego fragmentu)zablokowanego przez obligatoryjną blokadę rekordów do czasu, gdy proces będący sprawcąblokady odblokuje plik.Obligatoryjna blokada jest możliwa tylko wtedy, gdy żaden z bitówuprawnień do wykonywania nie jest włączony.Obligatoryjna blokada rekordów ujawnia się w listingu polecenia ls w miejscu bitu SGID jako duże S" zamiast małego s":% ls -F datę*-rw-rwS--- l franek 2048 Dec 3 1994 datebase-r-x--s--x l bin 16384 Apr 2 1993 datemaint*Pliki urządzeńSystemy komputerowe mają najczęściej dołączane urządzenia peryferyjne.Mogą to byćurządzenia wejścia/wyjścia (terminale, drukarki, modemy), urządzenia pamięci masowych (dyski,napędy taśm) lub inne specjalizowane przyrządy.W Unixie wszystkie urządzenia są traktowanejak pliki.Urządzenia w Unixie są reprezentowane przez węzły indeksowe identyczne z węzłami plików.Istnieją dwa rodzaje urządzeń: znakowe i blokowe (patrz opis w ramce).Każde urządzenie jestrównież identyfikowane przez główny numer urządzenia (ang.major), który wskazuje typurządzenia, i numer dodatkowy (ang.minor], który określa jedno z wielu urządzeń określanychprzez węzeł indeksowy.Na przykład wszystkie partycje fizycznego dysku twardego będą miały tensam numer główny urządzenia, ale różne numery dodatkowe.W przypadku karty portówszeregowych numer dodatkowy będzie określał numer portu na karcie.Kiedy program odczytujelub zapisuje dane do pliku urządzenia, jądro systemu zamienia żądania na operacjewejścia/wyjścia dla odpowiedniego urządzenia, posługując się numerem głównym i dodatkowymjako parametrami identyfikującymi urządzenie.W Unixie jest kilka specjalnych plików urządzeń, które nie odpowiadają żadnym fizycznymurządzeniom.Działanie urządzenia /dev/null polega po prostu na odrzucaniu wszystkiego, co jestdo niego kierowane - z tego urządzenia nic nie można również odczytać, a proces próbującywykonać odczyt z tego urządzenia otrzymuje od razu znak końca pliku.Zapis wykonany do/dev/console skutkuje wyświetleniem danych na konsoli systemowej terminala.Zapis lub odczytdanych z /dev/kmem jest równoważny z dostępem do pamięci jądra systemu.Przedstawionepowyżej urządzenia są określane również mianem pseudoitrządzeń.Właśnie pliki urządzeń są powodem ogromnej elastyczności i popularności Unixa -pozwalają one programistom pisać programy w sposób ogólny, bez potrzeby znajomości konkretnego urządzenia.Niestety taka architektura systemu prowadzi jednocześnie do wielu niebezpieczeństw i sytuacji, w których ktoś niepowołany możeuzyskać dostęp do systemu.: >.i ( ,Jeśli na przykład napastnik może odczytać lub zapisać dane do urządzenia /dev/kmem, możerównież zmienić priorytet, identyfikator UID i inne atrybuty działających procesów.Obcy możerównież pokryć ważne dane lub struktury danych przypadkowymi danymi i doprowadzić do awariisystemu.Dostęp do buforów ekranu może dać komuś możliwość skopiowania tego, co pojawia sięna ekranie.Dostęp do urządzenia dzwiękowego może umożliwić potajemne podsłuchiwanie biura.W standardowej konfiguracji Unixa wszystkie standardowe pliki urządzeń znajdują się w katalogu/dev.Zazwyczaj w katalogu tym znajdują się również gotowe skrypty (takie jak MAKEDE V)pozwalające na tworzenie nowych plików urządzeń i ustawianie potrzebnych uprawnień.Nieliczneurządzenia, takie jak /dev/mdl, /dev/tty czy /dev/console, powinny mieć ustawione prawo dozapisu dla wszystkich użytkowników.Reszta powinna być zablokowana przed odczytem i zapisemdla zwykłych użytkowników
[ Pobierz całość w formacie PDF ]