Wrażliwość systemu plików ntfs



Pobieranie 0,5 Mb.
Data21.02.2018
Rozmiar0,5 Mb.

Wstęp

Windows NT (New Technology) jest serwerowym systemem operacyjnym firmy Microsoft. Został on opracowany w odpowiedzi na potrzeby rozwijającego się rynku sieci lokalnych. Dzięki temu systemowi firma Microsoft pomyślnie tworzy sieci oparte na stacjach roboczych z systemami Windows 95 i 98 oraz przyłączone do serwerów UNIX i NetWare. System operacyjny Microsoft Windows NT oferuje bogaty zestaw funkcji bezpieczeństwa. Jednak w dostępnej bezpośrednio "z pudełka" konfiguracji - szczególnie w wypadku wersji Workstation - kwestie bezpieczeństwa zostały potraktowane w sposób dość liberalny. Wynika to z faktu, iż system operacyjny jest produktem mocno "skondensowanym", a producent generalnie wychodzi z założenia, że przeciętnemu klientowi niekoniecznie musi zależeć na systemie, który - choć bezpieczny - posiada szereg ograniczeń. Założenie to uległo w ostatnich latach zmianie, w miarę, jak popularność Windows NT rosła właśnie ze względu na jego cechy bezpieczeństwa.



W przeciwieństwie do środowiska Windows 3.1 działającego jako nakładka na system operacyjny MS-DOS (i jego 16-bitowej tablicy alokacji plików - FAT) oraz systemu Windows 95 opartego na 32-bitowej tablicy alokacji plików, system Windows NT korzysta z własnego systemu plików, noszącego nazwę NTFS (NT File System). System plików NT jest ściśle zintegrowany z systemem zabezpieczeń Windows NT - jest kluczowym elementem używanym do kontrolowania poziomów dostępu do informacji zgromadzonych na serwerze. System NTFS oraz model bezpieczeństwa Windows NT umożliwiają administratorowi serwera określenie efektywnych praw dostępu do zasobów na serwerze NT.

Wrażliwość systemu plików NTFS.
NTFS jest niezwykle sprawnym systemem plików. System ten, jako taki, jest w rzeczywistości pozbawiony błędów. Ma on jednak kilka słabych punktów, które mogą być do pewnego stopnia wykorzystane przez osoby niepowołane. Są znane trzy podstawowe usterki systemu NTFS:

  1. Jeśli tworzymy katalog dla jakiegoś użytkownika, to użytkownik ten ma prawo zarządzania dostępem do tego katalogu lub plików. Nie jest to uciążliwa cecha, jednak w wypadku gdy hakerowi uda się zalogować do serwera podszywając się pod użytkownika z rozszerzonymi prawami, może on udostępnić każdej osobie wszystkie katalogi użytkownika. Następnie może się wylogować z serwera i zalogować powtórnie na koncie publicznym zachowując przy tym dotychczasowe prawa dostępu do właśnie udostępnionych katalogów.

  2. Jeśli haker uzyska fizyczny dostęp do serwera NT, to może go ponownie uruchomić przy użyciu dyskietki z systemem MS-DOS oraz za pomocą narzędzia ntfsdos.exe uzyskać dostęp do dysku serwera NT. Będzie on mógł wtedy przeglądać cały dysk serwera bez względu na istniejące zabezpieczenia.

  3. Ostatni słaby punkt ujawnia się w sytuacji gdy użytkownik przyzna komuś prawo pełnej kontroli (Fuli Control) zamiast prawa do odczytywania, zapisywania, usuwania i tworzenia. Osoba taka uzyskuje wówczas ukryte pozwolenie o nazwie File Delete Child. Po przyznaniu komuś prawa Full Control nie można już cofnąć pozwolenia File Delete Child. Umożliwia ono dowolnemu użytkownikowi usuwanie z katalogu każdego pliku przeznaczonego tylko do odczytu. W zależności od tego, co znajduje się w katalogu, prawo użytkownika do usuwania ważnych plików może być bardzo niebezpieczne dla systemu Windows NT.


Podstawowy model zabezpieczeń Windows NT.
Gdy firma Microsoft zdecydowała się na opracowanie serwerowego systemu operacyjnego, rozpoczęła starania o to aby jej produkt uzyskał co najmniej ocenę C2 według kryterium ustalonego przez Departament Obrony w Pomarańczowej Księdze. Ocena ta jest przyznawana systemom operacyjnym, których model zabezpieczeń spełnia kilka warunków. Najważniejszym kryterium oceny modelu zabezpieczeń jest jednak nieskomplikowana zasada dostępu do obiektów w systemie.
Każdy obiekt w systemie Windows NT ma własne atrybuty bezpieczeństwa opisujące formę dostępu użytkownika do tego obiektu. Atrybuty bezpieczeństwa, będące konstrukcją systemu Windows, noszą nazwę deskryptora bezpieczeństwa. Deskryptor bezpieczeństwa składa się z dwóch elementów - listy kontroli dostępu (której istnienie jest narzucone przez model C2) oraz informacji o samym obiekcie.
Lista kontroli dostępu (Access Control List - ACL) zawiera informacje o tym, którzy użytkownicy i które grupy mają dostęp do obiektu oraz jaki jest ich poziom dostępu do obiektu. Grupy są to zespoły użytkowników powiązanych ze względu na zajmowane stanowiska (np.: KIEROWNICY) lub na strukturę firmy (np.: DZIAŁ SPRZEDAŻY). W systemie Windows NT jest kilka grup domyślnych, między innymi Everyone, Power Users, Administrators.
W systemie Windows NT z każdą grupą jest związany poziom dostępu czyli typ dostępu. Na przykład grupa Everyone może mieć tylko prawa odczytu jakiegoś obiektu, a grupa Power Users ma prawo odczytywania, modyfikowania, kopiowania oraz usuwania tego samego obiektu. System operacyjny sprawuje kontrolę nad tym, kto może uzyskać dostęp do obiektu i jakie ta osoba ma prawa dostępu.
W systemie Windows NT lista kontroli dostępu w deskryptorze bezpieczeństwa jest podzielona na dwie części (indywidualną oraz systemową listę kontroli dostępu).odpowiadające dwóm oddzielnym ograniczeniom służącym ochronie pojedynczego obiektu.

Indywidualna lista kontroli dostępu służy do określania, którzy użytkownicy mają dostęp do obiektu.

Systemowa lista kontroli dostępu określa które obiekty i usługi systemowe mają dostęp do tego obiektu. Najczęściej używa się pierwszej listy i z reguły ją się modyfikuje, ponieważ system operacyjny przechowuje wszystkie potrzebne mu informacje na liście systemowej.
Do każdego obiektu tworzonego przez użytkownika lub usługę w systemie Windows NT jest zawsze tworzony deskryptor bezpieczeństwa. Jeśli użytkownik lub usługa nie przypisze plikowi własnych atrybutów bezpieczeństwa, to system NT utworzy w deskryptorze

bezpieczeństwa indywidualną listę kontroli dostępu bez wpisów kontroli bezpieczeństwa. obiektowi, dostęp do niego będą mieli tylko ci użytkownicy i te grupy, które zostały wymienione na indywidualnej liście kontroli dostępu.


Elementy składowe systemu zabezpieczeń.
Local Security Authority (LSA). System lokalnego nadzoru bezpieczeństwa nosi także nazwę podsystemu bezpieczeństwa. LSA jest centralnym elementem systemu zabezpieczeń NT. Obsługuje on lokalne mechanizmy bezpieczeństwa oraz mechanizm uwiarygodniania użytkowników. Służy także do generowania i zapisywania wiadomości rewizyjnych. System ten wykonuje najwięcej operacji zarządzania w systemie ochrony. W razie potrzeby korzysta on z usług systemu zarządzania bezpieczeństwem kont i monitora odniesień bezpieczeństwa, a rezultaty swojej pracy przedstawia administratorowi lub użytkownikowi za pośrednictwem interfejsu użytkownika.

Istnienie struktury pozwoleń w systemie Windows NT oznacza, że każdy użytkownik lub grupa musi mieć pozwolenie na dostęp do każdego obiektu w sieci Windows NT, do którego chce uzyskać dostęp. Jeśli użytkownik dokona poprawnej implementacji to model zabezpieczeń systemu Windows NT może znacznie utrudnić włamanie się do tego systemu w porównaniu z innymi systemami, których modele zabezpieczeń są mniej wytrzymałe. Niestety model zabezpieczeń nie jest idealnie zaimplementowany w systemie Windows NT. W związku z tym nawet w najstaranniej zainstalowanym systemie mogą istnieć słabe punkty.



Security Account Manager (SAM). System zarządzania bezpieczeństwem kont obsługuje konta użytkowników i grup, a także oferuje systemowi lokalnego nadzoru bezpieczeństwa usługi uwiarygodniania użytkowników.
W systemie użytkownik lub grupa są identyfikowani przez numer SID a nie przez nazwę, która jest używana tylko ze względu na wygodę użytkowników. Kiedy grupa lub konto użytkownika jest usuwane odpowiadający im numer SID traci swoją ważność. Właśnie dlatego nie jest możliwe ponowne utworzenie tej samej grupy lub konta użytkownika. Nowe konto może mieć starą nazwę, ale zostanie mu przypisany nowy numer SID.

Ze względu na charakter i proces powstawania identyfikatorów SID należy zachować ostrożność podczas usuwania grup i kont użytkowników. Również każdy komputer Windows NT posiada własny SID i przy ponownym instalowaniu systemu stanie się nowym komputerem w sieci (otrzyma nowy numer SID).



Security Reference Monitor (SRM). Monitor odniesień bezpieczeństwa przeprowadza kontrolę i rewizje dostępu na użytek systemu lokalnego nadzoru bezpieczeństwa. Komponent ten zezwala lub uniemożliwia użytkownikowi uzyskanie dostępu do poszczególnych plików, katalogów i innych obiektów w zależności od praw jakimi dysponują. Generuje też stosowne wiadomości rewizyjne. SRM ma dostęp do kopii kodu potwierdzenia dostępu pozwalającego mu na ochronę zasobów z poziomu systemu, bez względu na rodzaj zasobu.

User Interface (UI). Jest to ważny element w modelu zabezpieczeń. Interfejs użytkownika jest tą częścią modelu, którą w pierwszym rzędzie widzi użytkownik i która służy do wykonywania większości zadań administracyjnych.



Proces logowania.

  1. Wszystkie procesy logowania inicjowane są sekwencją Ctrl+Alt+Del, która prowadzi do procesu WinLogon i jest poważną zaporą chroniącą system przed tzw. "komami trojańskimi" - programami, które przyjmują postać systemowych procesów logowania, aby w ten sposób przechwytywać nazwy użytkowników i ich hasła. WinLogon, składnik LSA (Local Security Authority), wyświetla okno powitalne, gdzie użytkownik wprowadza nazw, hasło i nazwę domeny. Jeśli podane dane nie są prawidłowe, pojawia się komunikat o braku możliwości zalogowania danego użytkownika.

  2. Jeśli wprowadzona nazwa użytkownika i hasło są prawidłowe, LSA przesyła te dane do podsystemu zabezpieczeń.

  3. Podsystem zabezpieczeń przekazuje informacje o użytkowniku do SAM

  4. SAM przegląda bazę danych ochrony kont i sprawdza, czy nazwa użytkownika i hasło są tam zapisane. Rezultat wyszukiwania wraca do podsystemu zabezpieczeń, wraz z danymi dotyczącymi uprawnień użytkownika, jego katalogu domowego i profilu. Jeśli dany użytkownik posiada skrypt logowania, to jest on pobierany i przygotowywany do uruchomienia.

  5. Jeśli w bazie SAM istnieje prawidłowy rekord związany z wprowadzonymi przez użytkownika informacjami i jeśli konto ma odpowiednie uprawnienia, podsystem zabezpieczeń generuje klucz dostępu, który reprezentuje dalej użytkownika i spełnia rolę uwierzytelniającą. Klucz ten jest następnie przesyłany do odsystemuWin32. Klucz dostępu zawiera następujące informacje:

    • Identyfikator bezpieczeństwa SID danego użytkownika

    • Identyfikatory grup, do których dany użytkownik należy

    • - Prawa przypisane danemu użytkownikowi

  6. Podsystem Win32 generuje nowy proces, który jest skojarzony z otrzymanym kluczem dostępu.

  7. Proces stworzony przez Win32 jest wykorzystywany do zainicjowania Win32 Program Manager.


Ochrona rejestru.

Wszelka informacja dotycząca inicjalizacji i konfiguracji systemu Windows NT przechowywana jest w rejestrze. Oprócz zabezpieczeń, o jakich była mowa przy okazji ochrony standardowej, administratorzy mogą chcieć chronić niektóre klucze w rejestrze.

Z założenia różne element rejestru są tak zabezpieczane, by umożliwiać pracę i jednocześnie gwarantować standardowy poziom bezpieczeństwa. Jego wyższy stopień może wymagać ustanowienia praw dostępu do niektórych kluczy rejestru. Należy zachować przy tym ostrożność, gdyż wiele programów użytkowych musi mieć dostęp do pewnych kluczy. Na ogół klucze (key) w rejestrze zmieniane są w sposób pośredni za pomocą programów narzędziowych z Control Panel. Zaleca się tę właśnie metodę. Rejestr może być również modyfikowany bezpośrednio przy użyciu Edytora rejestru (Registry Editor).
Edytor rejestru obsługuje funkcję zdalnego dostępu do rejestru Windows NT. By ograniczyć dostęp poprzez sieć do tego rejestru, należy użyć edytora do stworzenia następującego klucza rejestru:

Tak ustanowione zabezpieczenia określają, którzy użytkownicy lub które ich grupy mogą łączyć się z systemem w celu uzyskania zdalnego dostępu do rejestru. Standardowa instalacja Windows NT Workstation nie posiada tego klucza i nie ogranicza zdalnego dostępu do rejestru. Windows NT Server zezwala jedynie administratorom na zdalny dostęp do rejestru.



Założenia dla praw użytkownika
Każdy użytkownik posiada prawa, określające np. dostęp do poszczególnych obiektów.


Prawo użytkownika

Opis

Uzyskanie dostępu do tego komputera z sieci (Access this computer from network)

Umożliwia zdalny dostęp do współdzielonych zasobów tej stacji roboczej

Tworzenie kopii zapasowych plików i katalogów (Backup files and directories)

Umożliwia zachowanie danych



Zmiana czasu systemowego (Change system time)

Umożliwia zmianę czasu oraz daty systemowej

Wymuszenie zamknięcia systemu z systemu zdalnego (Force shutdown from remote system)

Umożliwia zdalne zamknięcie systemu

Ładowanie oraz usuwanie sterowników urządzeń (Load and unload device drivers)

Umożliwia zmianę sterowników urządzeń

Logowanie lokalne (Log on locally)

Umożliwia lokalna obsługę stacji roboczej

Zarządzanie inspekcją i dziennikiem zabezpieczeń (Manage and audit Security log)

Umożliwia dokonywanie zmian w założeniach dotyczących zabezpieczeń

Odtwarzanie plików i katalogów (Restore files and directories)

Umożliwia przywrócenie danych z kopii zapasowej

Zamykanie systemu (Shutdown the system)

Umożliwia zamknięcie systemu

Przejmowanie własności plików i innych obiektów (Take ownership of files or other objects)

Umożliwia przejmowanie przez użytkownika na własność danych obiektów systemowych

Podobnie jak w innych systemach operacyjnych przeznaczonych dla wielu użytkowników, jak np. w UNIX-ie, również w WINDOWS NT można utworzyć grupy użytkowników. Pod pojęciem „grupa” rozumiemy zbiór pewnej liczby użytkowników.


Każdy użytkownik ma swoje konto użytkownika. Poszczególne konta (a więc i sam użytkownik) mogą przynależeć od jednej lub też do kilku grup

Przy tworzeniu nowego konta użytkownika nie ma potrzeby zmiany praw dostępu do określonego pliku, lecz można nowego użytkownika przyporządkować do danej grupy, której wystarczy tylko raz przydzielić prawa dostępu do określonego obiektu. Każdy członek grupy ma dostęp do danego obiektu na prawach dostępu obowiązujących dla tej grupy.
WINDOWS NT rozróżnia lokalne i globalne grupy użytkowników.
Do grup lokalnych zalicza się te, które występują tylko na komputerze użytkownika, lecz nie występują w ewentualnie działającej sieci. Można tworzyć dowolną liczbę grup lokalnych oraz zmieniać już istniejące.

Jeżeli w sieci połączona jest większa liczba komputerów, mamy do czynienia z grupami globalnymi, dostępnymi dla wszystkich komputerów.


Domyślnie utworzone są grupy „Administratorzy”, „Goście”, „Operatorzy kopii zapasowych”, „Replikator”, „Użytkownicy”, „Użytkownicy zaawansowani”. Administratorzy mają najwięcej uprawnień, goście natomiast znajdują się na końcu tej hierarchii i mają bardzo ograniczone możliwości dokonywania zmian w obiektach. W tabeli poniżej znajdują się uprawnienia poszczególnych grup.

Prawa

AD

UZ

U

Goście

Wszyscy

OKZ




Zmiana czasu systemowego

+

+













Zdalne zmykanie systemu

+

+













Ładowanie i usuwanie sterowników urządzeń

+
















Logowanie lokalne

+

+

+

+

+

+

Zabezpieczanie plików i katalogów

+













+

Zamykanie systemu

+

+

+




+

+

Przejmowanie w posiadanie plików i obiektów

+
















Zarządzanie protokołami kontroli bezpieczeństwa

+
















Ponowne odtwarzanie plików i katalogów

+













+

Dostęp do danego komputera z sieci

+

+







+




Tworzenie i administrowanie kontami użytkowników

+

+













Tworzenie i zarządzanie grupami

+

+

+










Przydzielanie praw dostępu użytkownikom

+
















Blokowanie stacji roboczych

+

+







+




Znoszenie blokady stacji roboczych

+
















Formatowanie dysku twardego

+
















Tworzenie ogólnych grup programów

+

+













Zachowywanie profilu lokalnego

+

+










+

Przydzielanie i odbieranie praw dostępu do katalogów

+

+













Przydzielanie i odbieranie praw dostępu do drukarek

+

+
















Skróty: AD = Administrator, UZ = Użytkownicy zaawansowani, U = Użytkownicy, OKZ = Operatorzy kopii zapasowych

Oprócz wymienionych istnieją jeszcze systemowe grupy wewnętrzne: „WSZYSCY”, „INTERAKTYWNA”, „SYSTEM”, „SIEĆ”, „TWÓRCA WŁAŚCICIEL”. Tymi grupami nie można manipulować, gdyż są zintegrowane na stałe z systemem.



System plików NTFS (New Technology File System)

Projektanci systemu WINDOWS NT mając na uwadze niedoskonałości DOS-owskiego FAT-u oraz HPFS zaprojektowanego przez IBM dla systemu OS/2 postanowili opracować zupełnie nowe rozwiązanie. Ich celem było uzyskanie systemu plików, który z powodzeniem mógłby być zastosowany w dużych serwerach, a więc w komputerach przechowujących w wielu firmach strategiczne dane. Do najważniejszych cech systemu plików zaliczono między innymi możliwość obsługi bardzo dużych dysków, wysoki poziom bezpieczeństwa danych oraz dużą szybkość dostępu do plików. Pierwsze z założeń zrealizowano poprzez zwiększenie przestrzeni adresowej jednostek lokacji tzw. klastrów.



NTFS w swojej pierwotnej wersji używał 32-bitowej przestrzeni adresowej plików (DOS w swojej pierwszej wersji stosował tylko 12 bitów).

Najnowsza wersja NTFS używa 64 bitów do numerowania klastrów, co oznacza maksymalną liczbę 264 ( w zaokrągleniu 18 bilionów ) dostępnych klastrów o maksymalnym rozmiarze 64 KB. Te parametry powinny zadowolić nawet najbardziej wymagającego konstruktora sprzętu. Wielkość klastra w systemie NTFS nie jest stała i może być definiowana w zakresie od 512 bajtów przy małych dyskach do 64 KB dla dysków o dużej pojemności. Zmieniając rozmiar klastra, mamy możliwość wpływu na dwa efekty, mogące mieć duże znaczenie dla efektywności pracy naszego komputera. Powiększając rozmiar klastrów zwiększamy równocześnie szybkość dostępu po plików. Dzieje się tak dlatego, iż system operacyjny, odwołując się do danych w dowolnym zbiorze, musi wyszukać mniejszą liczbę jednostek alokacji plików. Podczas zapisu plików na dysk rzeczywista wielkość zbioru jest wielokrotnością rozmiaru klastra.

I tak np. gdy klastry mają w przypadku dużych dysków wielkość 64 KB , a plik ma rozmiar np. 8 bajtów to zajmie on dokładnie jedną jednostkę alokacji czyli 64 KB.
Kolejną nowością w stosunku do starszych systemów jest zastosowanie UNICODE jako głównego standardu kodowania znaków używanych w nazwach plików oraz katalogów. Umożliwia to bezproblemowe używanie w nazwach narodowych znaków diaktrycznych. Dodatkowo dowolna nazwa pliku lub katalogu może mieć w NTFS długość 255 znaków oraz zawierać spacje i kropki.

Mając na uwadze zakładany w projekcie poziom bezpieczeństwa danych, zastosowano również ciekawe rozwiązanie o nazwie HOTFIX. Jeżeli system wykryje podczas kopiowania danych że klaster jest uszkodzony natychmiast wpisuje go do specjalnego rejestru i automatycznie przesuwa poprawną kopie danych do klastra, który nie jest wadliwy.

System plików NTFS jest jedną z podstaw bezpieczeństwa WINDOWS NT. Partycja NTFS zaczyna się klasycznym sektorem inicjującym. Nie jest to ,jak sugeruje nazwa pojedynczy sektor, może to być nawet 16 pierwszych sektorów (zależnie od zapotrzebowania systemu).

Pierwszym plikiem wolumenu NTFS jest baza danych tzw. nadrzędna tabela plików (MFT- Master File Table). Jest to wykaz najważniejszych plików wolumenu (ich nazwy zaczynają od znaku „$”). W aktualnej wersji systemu plikami tymi są kopia tabeli MFT, plik logów, informacje o wolumenie (etykieta wolumenu, numer wersji NTFS); tablica definicji atrybutów (nazwy, numery identyfikacyjne, objaśnienia); folder główny; bitmapa klastrów (opis zajętości partycji); kopia BOOT sektora partycji; tabela uszkodzonych klastrów; tabela konwersji małych liter na duże odpowiedniki UNICODE.

Poza tym tabela MFT zawiera 6 wolnych pozycji (zapisów), które mogą być wykorzystane w przyszłości

NTFS umożliwia także kontrolę dostępu do plików i katalogów, co w znacznym stopniu zwiększa bezpieczeństwo całego systemu komputerowego.

Największą niedogodnością systemu NTFS jest fakt, iż sformatowana w nim partycja może być używana tylko pod WINDOWS NT: gdy z jakiś względów stracimy dostęp do NT, automatycznie stracimy także możliwość dotarcia do wszystkich zasobów dysku.
Zalety NTFS.
System uprawnień na poziomie zasobów sieci steruje dostępem do zbiorów za pośrednictwem sieci. Nie zabezpiecza plików i katalogów przed dostępem użytkowników. Jeśli użytkownik posiada prawo lokalnej rejestracji to ma dostęp do katalogów głównych napędów dyskowych i może korzystać ze wszystkich wiadomości przechowywanych w plikach i katalogach, bez żadnych dodatkowych uprawnień na poziomie zasobów wspólnych. Umożliwienie ochrony plików i katalogów jest największą zaletą, która przemawia za stosowaniem plików systemu NTFS na serwerach pełniących kluczowe role w przedsiębiorstwie.

Kolejną zaletą NTFS jest zdolność do monitorowania zdarzeń wywołanych udanymi lub niepomyślnymi próbami dostępu do plików lub katalogów przez użytkowników indywidualnych lub grupy. System monitoringu umożliwia śledzenie wyniku następujących zdarzeń związanych z dostępem do zbiorów NTFS:




  • Read (czytanie / przeglądanie)

  • Write (zapis)

  • Execute (uruchamianie)

  • Delete (usuwanie)

  • Change Permission (zmiana pozwoleń)

  • Take Ownership (przejęcie własności)

Śledzenie zdarzeń wywołanych dostępem do zbiorów może służyć nie tylko podniesieniu bezpieczeństwa systemu lecz również podnoszeniu jego wydajności. Wiadomości uzyskane z dzienników można wykorzystać na przykład do lepszego planowania rozmieszczenia zasobów na serwerach sieci.


NTFS jest odzyskiwalny. Podejmuje on kroki, które gwarantują, że zawsze może utrzymywać porządek i uniknąć utraty danych ze swoich sekcji. NTFS stosuje podejście transakcyjne do uaktualniania swoich struktur znajdujących się na dysku, pozwalając odzyskać je nawet po awarii komputera albo sieci. Odzyskiwanie trwa zwykle parę sekund niezależnie od rozmiaru sekcji. NTFS zachowuje dodatkowe kopie swoich krytycznych danych, więc błąd w konkretnym punkcie dysku nie powoduje utraty całej sekcji. Odzyskiwalność systemu plików nie gwarantuje odzyskania danych. Wszelkie dane, które aplikacja mogła zapisać w czasie uszkodzenia, mogą zostać utracone.

Schemat procesu przyznawania dostępu do obiektu:


Proces przyznawania dostępu do obiektu.

W następstwie prawidłowego logowania podsystem zabezpieczeń rozpoczyna kontrolę wszystkich prób dostępu do obiektów - klucz dostępu użytkownika jest porównywany z listą kontroli dostępu obiektu.



Porównywanie to przebiega w następujący sposób:

  • Idąc od początku listy ACL podsystem zabezpieczeń poszukuje elementy kontrolne zabraniające dostępu danemu użytkownikowi lub grupie, do której on należy.

  • Jeśli jakikolwiek z powyższych elementów został znaleziony dostęp do obiektu staje się niemożliwy

  • Jeśli dostęp jest możliwy podsystem zabezpieczeń poszukuje dokładnie tego ACE (access control, entry), które pozwalają na żądany dostęp. Elementy ACE są przeszukiwane dopóki nie zostaną zgromadzone wystarczające uprawnienia do wymaganego dostępu.

  • Jeśli podsystem zabezpieczeń nie jest w stanie zidentyfikować wystarczających uprawnień, dostęp do obiektu staje się niemożliwy.

  • W przypadku, gdy znalezione zostały wystarczające uprawnienia, podsystem zabezpieczeń zezwala na wymagany dostęp do obiektu.


1. Użytkownik żąda dostępu do określonego obiektu.

2. Użytkownik jest autoryzowany za pomocą listy ACL danego obiektu. Poszukiwanie listy ACL następuje tylko przy pierwszym dostępie użytkownika do obiektu. W rezultacie uprawnienia są ważne tak długo, jak długo pozostaje otwarty wygenerowany uchwyt. Zmiany w ACL stają się aktywne dopiero po tym, jak użytkownik zamknie aktualny uchwyt i otworzy nowy. Np. jeśli administrator zmieni atrybut pliku na Read Only (tylko do odczytu) w chwili, gdy jest on otwarty przez jednego z użytkowników, to użytkownik ten może nadal zapisywać i modyfikować dany plik.

3. Jeśli użytkownik posiada wymagane uprawnienia generowany jest uchwyt (hendle). Uchwyt to wewnętrzny identyfikator Windows NT identyfikujący konkretny dostęp do zasobu. Posługując się uchwytem system generuje listę nadanych praw dostępu opisującą uprawnienia użytkownika do danego obiektu. Lista ta jest przechowywana w tabeli procesu użytkownika.

4. Po otwarciu obiektu dopuszczalne akcje są porównywane z listą nadanych praw dostępu, znajdującą się w tabeli procesu użytkownika.
Grupy Użytkowników.
Podczas instalowania serwera Windows NT system operacyjny automatycznie tworzy sześć grup domyślnych:

Administrators. Administratorzy mają pełne prawa dostępu do każdego pliku i katalogu znajdującego się na serwerze lub w domenie.

Backup Operators. Operatorzy kopii zapasowych mogą omijać mechanizmy bezpieczeństwa plików w ramach operacji wykonywania kopii zapasowych. Prawo Backup Operator stanowi duże zagrożenie dla sieci, ponieważ haker może sporządzić kopię systemu i włamać się do plików poza siecią.

Guests. Goście mogą się logować do systemu Windows NT i przeglądać większość plików w domenie, ale nie mogą ich otwierać lub w inny sposób nimi manipulować.

Power Users. Uprawnieni użytkownicy maja wszystkie prawa użytkowników. Ponadto mogą oni Współużytkować katalogi i drukarki z innymi użytkownikami uprawnionymi, a także mają rozszerzone prawa dostępu do katalogów danych.

Replicator. Użytkownicy z grupy Replicator mogą replikować (czyli kopiować) pliki między dwoma miejscami w obrębie jednej domeny, ale nie mogą otwierać ani modyfikować zreplikowanych plików. Do tego celu muszą mieć dodatkowe prawa dostępu.

Users. Użytkownicy mają na ogół prawo dostępu do swoich katalogów własnych, aplikacji oraz – najczęściej – współużytkowanych katalogów danych. Dostęp typu Users jest wystarczający w wypadku większości użytkowników w domenie.
Ponadto system Windows NT tworzy kilka wbudowanych, domyślnych grup lokalnych, które mogą pełnić różnorodne funkcje (są to: Server Operators, Backup Operators, Account Operators oraz Print Operators). Niektóre z tych funkcji powinny być dostępne tylko dla administratorów, którzy mogą przeprowadzać wszystkie operacje w sieci. Użytkownicy wchodzący w skład powyższych grup lokalnych mogą wykonywać kilka dodatkowych czynności (np.: mają możliwość wyłączania serwera, logowania się na konsolę oraz wykonywania kopii zapasowych), które stwarzają ryzyko dla bezpieczeństwa zasobów systemowych. Należy więc upewnić się, że prawa dostępu do kont lokalnych są dobrze strzeżone i monitorowane.
OCHRONA PLIKÓW I KATALOGÓW.
System plików NTFS jest bezpieczniejszy od systemu FAT, i z tego względu powinien być zawsze używany wówczas, gdy względy bezpieczeństwa odgrywają istotną rolę. Jedynym powodem zastosowania systemu FAT jest partycja ładowania początkowego systemu RISC. Partycja systemu z użyciem FAT może być jednak chroniona w sposób całościowy za pośrednictwem polecenia Secure System Partition w menu Partition programu narzędziowego Disk Administrator.

W wypadku NTFS pliki i katalogi mogą być chronione na wiele sposobów, określających, które grupy lub pojedyncze konta mogą uzyskiwać dostęp do tych zasobów i w jakim trybie. Korzystając z praw dziedziczonych oraz przydzielając zezwolenia raczej grupom niż indywidualnym kontom, upraszcza się procedurę związaną z utrzymywaniem właściwych zabezpieczeń.

Wśród plików i katalogów wymagających ochrony znajdują się te, które tworzą sam system operacyjny. Standardowy zestaw zezwoleń dotyczących plików i katalogów systemowych zapewnia rozsądny stopień bezpieczeństwa bez głębokiego ingerowania w zasady działania komputera. Jednakże dla potrzeb wysokiego poziomu bezpieczeństwa, można ustanowić w katalogach dodatkowe zabezpieczenia dla wszystkich podkatalogów i istniejących plików, natychmiast po zainstalowaniu Windows NT – przedstawia to poniższa lista. Należy upewnić się, że stosowne zezwolenia zostały najpierw ustanowione dla katalogów nadrzędnych, a dopiero w drugiej kolejności dla podkatalogów.

Katalog Zezwolenia

\WINNT i wszystkie jego podkatalogi Administrators: Full Control

CREATOR OWNER: Full Control
Everyone: Read
SYSTEM: Full Control
W \WINNT, wprowadź następujące wyjątki od generalnych zasad bezpieczeństwa:


Katalog Zezwolenia

\WINNT\REPAIR Administrators: Full Control


\WINNT\SYSTEM32\CONFIG Administrators: Full Control
CREATOR OWNER: Full Control
Everyone: List
SYSTEM: Full Control
\WINNT\SYSTEM32\SPOOL Administrators: Full Control
CREATOR OWNER: Full Control
Everyone: Read
Power Users: Change
SYSTEM: Full Control
\WINNT\COOKIES Administrators: Full Control
\WINNT\FORMS CREATOR OWNER: Full Control
\WINNT\HISTORY Everyone: Special Directory Access – Read,

\WINNT\OCCACHE Write and Execute, Special File Access – None


\WINNT\PROFILES System : Full Control

\WINNT\SENDTO


\WINNT\Temporary Internet Files

Zabezpieczenie sieci przed atakami

Ważne jest aby system bezpieczeństwa zaplanować wcześniej, zanim zacznie się budować sieć, ponieważ sprawy bezpieczeństwa powinny być rozpatrywane w aspekcie dokonywanych wyborów (oprogramowania, sprzętu i połączeń internetowych).

W najbardziej ogólnym sensie, można wyróżnić dwie koncepcje tworzenia bezpieczeństwa w sieci:


  • udzielanie zezwolenia na wszystko i blokowanie dostępu wynikające z wymogów bezpieczeństwa

  • blokowanie wszystkiego jako zasady ogólnej i przydzielanie zezwoleń według konkretnych potrzeb

W pierwszej strategii wymaga się, aby najpierw ustalono wszystko, co powinno być zabezpieczone. Jeśli popełnimy błąd, ktoś uzyska dostęp, którego mieć nie powinien. W drugiej strategii wymaga się zaś aby z góry przewidzieć wszystko, co będzie potrzebne do użycia. I jeśli zrobimy błąd, ktoś nie będzie mógł otrzymać dostępu do obiektu, którego potrzebuje.

Oczywiście w wariancie drugim dowiemy się wcześniej o błędzie i będzie on łatwiejszy do usunięcia.

A oto główne metody ochrony komputera:

Zabezpieczenie pasywne


  • opracowanie planu i polityki bezpieczeństwa

  • strukturalne ograniczenie zewnętrznego dostępu do sieci

  • instalowanie tylko niezbędnych usług

  • stosowanie tylko znanego oprogramowania, bezpiecznego i pozbawionego błędów

  • odpowiednie konfigurowanie serwerów, systemu plików, oprogramowania i kont użytkowników, zapewniające kontrolę poprawności dostępu

  • ukrywanie przed otoczeniem zewnętrznym wszystkich informacji o swojej sieci, których nie ma konieczności udostępniania



Zabezpieczenie aktywne

  • instalowanie firewalli blokujących niebezpieczną lub niewłaściwą komunikację internetową, odbywającą się w szerokim zakresie pomiędzy siecią a Internetem

  • stosowanie ogniw pośredniczących (proxies) i bram (gateways), umożliwiając dostęp do Internetu tylko z wybranych serwerów i ich serwisów

  • ograniczenie dostępu przez stosowanie metod szyfrowania i potwierdzenia autentyczności na podstawie danych uwierzytelniających (takich jak hasło)

  • stosowanie coraz nowszych zabezpieczeń przed zagrożeniami, szczególnie w zakresie Windows NT Servera



Raportowanie i monitorowanie

  • testowanie systemu ochrony przed podłączeniem się do Internetu

  • monitorowanie ruchu internetowego w sieci i na łączach z dostawcą usług internetowych oraz komunikacji z innymi sieciami

  • wykrywanie i rejestrowanie podejrzanej aktywności w sieci i aplikacjach programowych



Przewidywanie katastrof

  • stałe wykonywanie kopii zapasowych udostępnianych serwerów - zanim zostaną one podłączone do Internetu i za każdym razem, gdy dokonane zostaną zmiany oprogramowania systemowego

  • wykonywanie kopii bezpieczeństwa wtedy, gdy tylko sam pracujesz na serwerze

  • napisanie i aktualizowanie dokumentacji o sprawdzonych procedur odzyskiwania danych

  • posiadanie planu działania w przypadku naruszenia bezpieczeństwa


Obiekty, typy obiektów
Wszystkie obiekty reprezentują pewne procesy, użytkowników lub zasoby zawarte w systemie. Każdy z nazwanych obiektów zawiera deskryptor bezpieczeństwa. Deskryptor składa się z różnych informacyjnych parametrów, opisujących upoważnienia dostępu do obiektu.

Są to:


  • identyfikator ochronny właściciela (Owner Security ID) określających użytkownika (lub grupę), który jest właścicielem obiektu.

  • identyfikator ochronny grupy

  • lista kontroli dostępu (ACL) jest spisem użytkowników i grup mających uprawnienia do obiektu. Zawiera również spis użytkowników i grup, którzy mają indywidualnie zabroniony dostęp do obiektu.


Przejmowanie obiektu
Użytkownik tworzący określony obiekt jest zawsze jednocześnie właścicielem tego obiektu. Właściciele mogą zmieniać atrybuty takiego pliku i mogą odmówić nawet przydzielenia praw dostępu Administratorowi. Z drugiej strony jednak Administratorzy mogą przejąć dany plik w swoje posiadanie i anulować tę operację. W zakładce Zabezpieczenia można przejąć w posiadanie dany obiekt za pomocą przycisku Własność.
Planowanie i zarządzanie domenami
NT używa modelu domenowego zarządzania kontami użytkowników. Sposób w jaki NT współpracuje z siecią obrazuje pojęcie zabezpieczeń opartych na domenie.

Używając NT komputer można skonfigurować jako samodzielny serwer (stand-alone server). W sieci każdy taki serwer posiada własną listę kont użytkowników, które trzyma dla siebie. Samodzielny serwer jest podobny do komputera z systemem Windows for Workgroups, gdzie każda stacja robocza może udostępnić swoje elementy innym stacjom roboczym należącym do „grup roboczych”, które są dla niej widoczne. Nie ma ograniczenia co do ilości użytkowników, którzy mogą być połączeni z serwerem NT, nawet w trybie stand-alone. Ale, na tej samej zasadzie, samodzielny serwer będzie członkiem sieciowej grupy roboczej Windows.

Administrowanie samodzielnym serwerem NT to zadanie bardzo proste, ale jedynie na początku. Dodanie nowego użytkownika to nieskomplikowana operacja. Problemy pojawiają się wtedy, kiedy zaczyna się dodawać do sieci nowe serwery: operacje tworzenia kont trzeba praktycznie zaczynać od nowa. Nie ma żadnej gwarancji na to, że nazwa danego użytkownika na jednym serwerze będzie taka sama jak nazwa tego samego użytkownika na drugim serwerze. A jeśli hasło straci ważność (wygaśnie) lub gdy coś innego zostanie zmienione na jednym z serwerów, to nie istnieje żaden związek pomiędzy tym hasłem, a hasłem użytkownika na innym serwerze. Wynika to z faktu, że samodzielny serwer nie dzieli się informacjami o kontach użytkowników z innymi serwerami i nie można z nim współpracować, jeśli nie posiada się na nim konta.

Zarządzanie wieloma samodzielnymi serwerami w sieci oznacza zarządzanie wieloma listami kont użytkowników, co może być trudne. Na szczęście jest sposób na to, aby poinformować serwer NT, że ma szukać konta użytkownika w jednym centralnym miejscu. O każdym serwerze, który będzie przeszukiwać tę określoną lokalizację, mówi się, że należy do domeny NT. Centralna lista kont użytkowników domeny jest przechowywana na komputerze nazywanym kontrolerem domeny.


Oto elementy tego typu konfiguracji:


  • Kontroler domeny NT: Serwer NT zarządzający scentralizowaną listą kont użytkowników;

  • Domena NT: Grupa komputerów (łącznie z kontrolerem domeny), która pobiera informacje o kontach użytkowników od określonego kontrolera domeny;

  • Lokalne konto: Konto stworzone na serwerze NT, który nie jest kontrolerem domeny. Żaden serwer w domenie nie udostępnia informacji o lokalnych kontach;

  • Globalne konto: Konto stworzone na kontrolerze domeny NT. Każdy komputer w domenie tego kontrolera domeny jest w stanie umożliwić dostęp do globalnych użytkowników, ponieważ kontroler domeny dzieli się informacjami o tych kontach ze wszystkimi serwerami, które należą do domeny.

Serwery, które należą do domeny, nadal mogą posiadać lokalne konta, które nie są globalnymi kontami domeny, ale są kontami tylko tego serwera.

Każdy serwer w domenie prosi kontroler domeny o autoryzację globalnego konta. Tak długo, jak długo globalne konto będzie znajdować się na kontrolnej liście dostępu (Access Control List) będzie ono weryfikowane przez kontroler domeny.
Domeny znacznie upraszczają sytuację. Możemy dodać do sieci więcej serwerów, później uczynić je członkami domeny i nadal będziemy zarządzać tylko jedną listą kont użytkowników. W praktyce często potrzebnych jest więcej domen. Jeśli sieć jest duża (składa się np. z 1000 serwerów), to dość trudne może okazać się używanie pojedynczej „płaskiej” listy zawierającej wszystkie konta. Także przy rozległych sieciach korzystne jest podzielenie sieci na obszary administrowane bezkonfliktowo przez wielu administratorów. Sposobem na współpracę pomiędzy domenami (wymiana informacji o kontach globalnych) jest wprowadzenie mechanizmu zaufania. Zaufanie umożliwia administratorowi nadanie praw dostępu do zasobów jednej domeny użytkownikom z drugiej domeny. Zaufanie pozwala na takie operacje, ale nie realizuje ich automatycznie. W dalszym ciągu administrator musi jasno określić uprawnienia do zasobów.
Zagadnienia, które wiążą się z zaufaniem domen:


  • Zaufanie jest jednostronne: Zaufanie domeny A do domeny B nie oznacza, że domena B ufa domenie A. Jeśli chcemy aby tak było, trzeba nakazać domenie B, aby ufała domenie A. Taki typ zaufania nazywany jest zaufaniem dwustronnym.

  • Do ustanowienia zaufania trzeba mieć odpowiednie uprawienia: Zanim domena A zacznie ufać domenie B, domena B musi nadać odpowiednie uprawnienia domenie A.

  • Zaufanie może być przerwane: Po ustaniu zaufania można bez problemu je przerwać. Można także sprawić, by domena nie pozwoliła na to, by jej ufano.


Ochrona urządzeń do składowania danych
Windows NT dostarcza możliwości korzystania z różnorodnych metod ochrony napędów pamięci. Jedną z takich metod jest śledzenie transakcji, za pomocą tzw. Dziennika transakcji na wolumenie NTFS. Plik dziennika zawiera informacje, umożliwiające systemowi operacyjnemu odtworzenie w razie awarii układu danych zawartych na dysku, do ostatniego znanego stanu. Do tworzenia pliku, który zawiera wszystkie informacje niezbędne systemowi, służy usługa dziennika plików ( LOG FILE SERVICE).

Kolejnym sposobem ochrony urządzeń do składowania danych jest tzw. Zamienność sektorów. Podobnie jak inne systemy operacyjne w trakcie formatowania twardego dysku WINDOWS NT oznacza wszystkie uszkodzone sektory. Zapis do nich jakichkolwiek informacji jest niemożliwy. Ponadto NT wykrywa błędy zapisu związane z uszkodzeniem sektorów. System oznacza sektor jako uszkodzony i przeadresowuje go do dobrego. Wszystkie informacje, które miały być zapisane w złym sektorze zostają zapisane do dobrego.


Mirroring i dupleksing dysków
Należą do najlepszych metod zapewnienia integralności i niezawodności dostępu do danych. Mirroring polega na połączeniu dwóch twardych dysków o tej samej pojemności całkowitej, które są zainstalowane na tym samym serwerze. Informacje zapisane na jednym dysku są lustrzaną kopią zapisów na drugiej jednostce. W przypadku awarii jednego z napędów, drugi przejmuje rolę głównego dysku. Oba urządzenia są nieustannie synchronizowane w celu zapewnienia identyczności. Bardzo podobną zasadę działania ma dupleksing. Różnica jest tylko w tym, że zastosowano odrębne kontrolery dla każdego dysku. W ten sposób usuwa się groźbę utraty danych i zatrzymania pracy systemu spowodowaną awarią wspólnego kontrolera. Mirroring i dupleksing może być zastosowany dzięki rozwiązaniom sprzętowym. Oznacza to, że czynności związane z działaniem takiego układu nie są sterowane przez system operacyjny, lecz na poziomie sprzętowym. Windows NT widzi lustrzane dyski jako jeden dysk. WINDOWS NT SERVER umożliwia mirroring i dupleksing oddzielnych fizycznie dysków za pomocą programu do administrowania dyskami. Zapewniona jest wtedy integralność danych i dostępność informacji do czasu zaplanowanej przerwy konserwacyjnej.

Zaletami mirroringu i dupleksingu są: niewielka cena, łatwa metoda odzyskiwania danych, i szybszy dostęp do informacji. Wiele czasu oszczędza zdolność systemu do dzielonego odczytu co oznacza, że czytanie danych odbywa się z tego dysku który je pierwszy zlokalizuje (położenie głowicy).



Język skryptów Windows NT

Język plików wsadowych jest podobny do tego w systemie DOS, z tym że występuje w nim kilka dodatkowych poleceń.

Tworzenie poleceń

Znak ^ oznacza przeniesienie polecenia. Może być stosowany w skryptach do poleceń zajmujących więcej, niż jeden wiersz:

copy a_very_long_file_name_indeed.rtf ^

C:\Temp\quite a long directory name\a different file name.doc

Poniższe konstrukcje można stosować do tworzenia bardziej złożonych poleceń

z kilku prostszych:

& Łączy wiele poleceń, tak jak w przykładzie, gdzie plik jest kopiowany i usuwany:

copy a.txt \\pele\homes\chavez.txt & del a.txt

&& Warunkowe wykonanie polecenia - drugie polecenie jest wykonywane jedynie wtedy, gdy pierwsze zakończy się poprawnie. W tym przykładzie plik a.txt jest usuwany, gdy polecenie Copy wykona się poprawnie:

copy a.txt \\pele\homes\chavez.txt && del a.txt

|| Warunkowe wykonanie polecenia - drugie polecenie jest wykonywane jedynie wtedy, gdy pierwsze się nie uda. W tym przykładzie polecenie Echo jest wykonywane jedynie wtedy, gdy nie uda się polecenie Copy:

copy *.* \\pele\homes\chavez.txt || echo "Copy operation failed."

Komentarze

W skrypcie można umieszczać komentarze, wstawiając na początku wiersza Rem (od "remark" - komentarz). W ten sposób można także blokować polecenia.

Przekierowania we/wy

Język skryptów Windows NT obsługuje zwykłe przekierowania:

>plik

Wysyła standardowe wyjście do pliku, nadpisując jego obecną zawartość.



>>plik

Dopisywanie danych ze standardowego wyjścia do pliku.

Pobranie standardowego wejścia z zadanego pliku.

polecenie1 | polecenie2

Potok - przesłanie standardowego wyjścia polecenia1 jako standardowego wejścia do polecenia2.

polecenie1 0> polecenie2

Alternatywny format dla znaku potoku ( | )

1>plik


1>>plik

Inne możliwe formaty dla przekierowania standardowego wyjścia.

2>plik

2>>plik


Przekierowanie standardowego wyjścia błędu do zadanego pliku, odpowiednio nadpisując go lub dopisując do niego.

Argumenty skryptu

Argumenty określone w wierszu poleceń można wykorzystać w skrypcie za pomocą zapisu %n, oznaczającego odwołanie się do n-tego argumentu (licząc od 1). Można używać w ten sposób pierwszych dziewięciu argumentów. Jeżeli twój skrypt wymaga więcej niż dziewięciu, możesz wykorzystać polecenie shift do zmiany kolejności argumentów. Bez żadnych opcji polecenie przesuwa każdy argument o jedną pozycję w lewo - do początku listy argumentów - powodując, że drugiemu argumentowi wiersza poleceń odpowiada %1, trzeciemu %2 i tak dalej. Jeżeli shift użyto z opcją liczbową, przesuwane są jedynie argumenty o numerach równych lub większych od tej liczby. Tym sposobem shift /3 rozpoczyna przesuwanie argumentów od %3, pozostawiając %1 i %2 bez zmian.

Oto prosty skrypt ilustrujący te zasady:

C:\> type shift_em.bat

echo off

echo linia l: %1 %2 %3 %4 %5

shift

echo linia 2: %1 %2 %3 %4 %5



shift /3

echo linia 3: %1 %2 %3 %4 %5

echo wszystkie argumenty: %*

echo nazwa: %0

C:\> shift_em a b c d e f g h

echo off


linia 1: a b c d e

linia 2: b c d e f

linia 3: b c e f g

wszystkie argumenty: a b c d e f g h

nazwa: shift em

Jak pokazuje ostatni wiersz skryptu, %0 zawiera nazwę polecenia (pierwszy element w wierszu poleceń). Zmienna %* oznacza oryginalny zestaw argumentów wiersza poleceń (niezmieniony przez operację shift).

Argumenty mogą być modyfikowane przed użyciem przez umieszczenie sposobu modyfikacji pomiędzy znakiem % a numerem argumentu. Na przykład postać %-d3 oznacza literę dysku z trzeciego argumentu. Modyfikacje są zawsze określane tyldą, za którą następuje kod modyfikacji, składający się z jednej lub kilku liter.

Dostępne modyfikatory są następujące:

%~fn Pełna ścieżka.

%~dn Tylko litera dysku.

%~pn Tylko katalog.

%~nn Tylko nazwa pliku.

%~xn Tylko rozszerzenie pliku.

%~sn Używanie nazw 8.3, a nie długich nazw ścieżek (używaj z n i/lub x).

% ~$PATH:n Sprawdzanie ścieżki poszukiwań w zmiennej środowiskowej PATH i zwracanie pełnej ścieżki dla pasującego polecenia podanego jako argument n oraz zwracanie pustego ciągu znaków, jeżeli element nie zostanie znaleziony.

Oto skrypt, który zawiera niektóre przykłady tych konstrukcji:

C:\> type args.bat

echo off


echo whole thing: %1

echo drive: %~dl

echo directory: %~p1

echo filename: %~n1

echo extension: %~x1

echo full pathname: %~f2

echo directory and filename: %-pnx2

C:\> args C:\Temp\My_New_Document.Doc Sample.Junk

echo off

whole thing: C:\Temp\My_New_Document.Doc

drive: C:

directory: \TEMP\

filename: My_New_Document

extension:.Doc

full pathname: C:\Work\Sample.Junk

directory and filename: \Work\Sample,Junk

Jak pokazują dwa ostatnie polecenia, powyższych konstrukcji można używać do znalezienia dysku i katalogu dla zadanego przez częściową nazwę ścieżki. Po tyldzie może występować więcej niż jedna litera (jak pokazuje ostatnie polecenie). Modyfikatory są omówione w dokumentacji polecenia Call (Call /?).

Zmienne

Zmienne w skrypcie mogą być definiowane za pomocą polecenia set, które ma następującą składnię:

set nazwa=wartość

Na przykład poniższe polecenia przypisują zmiennym plik i x odpowiednio wartości "ciąg znaków" i 5:

C:\> set plik="ciąg znaków"

C:\> set x=5

Odwołanie do zmiennych następuje przez otoczenie ich nazwy znakami %. Opcja /A polecenia set może być zastosowana do przypisania zmiennej wyniku wyrażenia arytmetycznego:

C : \> set /A x=%x% + 1 Zwiększenie x o 1

C : \> set y=%x%+1 & echo y is %y% y zawiera wartość znakową

y is 5+1


Polecenia setlocal i endlocal mogą być używane do ograniczenia fragmentu skryptu, w którym zmiany zmiennych środowiskowych są lokalne - zmienne otrzymują z powrotem swoje wartości po opuszczeniu takiego fragmentu.

Wbudowane zmienne środowiskowe

Istnieje kilka przydatnych wbudowanych zmiennych środowiskowych:

%username% Zawiera nazwę bieżącego użytkownika (małymi literami).

%homedrive% Jest rozwijana w literę dysku na którym znajduje się katalog macierzysty bieżącego użytkownika.

%homepath% Jest rozwijana w ścieżkę katalogu macierzystego bieżącego użytkownika.

%homeshare% Jest rozwijana w zasób dzielony zawierający katalog macierzysty bieżącego użytkownika.

%processor architecture% Jest rozwijana w słowo kluczowe zawierające producenta procesora zainstalowanego w systemie (x86 lub alpha).

%processor level% Jest rozwijana w liczbę wskazującą model procesora z danej rodziny.

%errorlevel% Zawiera stan zakończenia ostatniego polecenia. Wartość 0 generalnie wskazuje poprawne wykonanie, a wartość 1 wskazuje błąd. Niektóre polecenia wykorzystują zmienną do określenia wartości, której interpretacja jest zależna od polecenia.

Oto kilka przykładów:

C:\> echo %username%

administrator

C:\> echo %homedrive%

C:

C:\> echo %homepath% & echo %homedrive%%homepath%



\

C:\


C:\> echo %processor_architecture%

x86


C:\> echo %processor_level%

5 Wskazuje procesor Pentium



Skoki

Język poleceń Windows NT zawiera kilka konstrukcji do przechodzenia pomiędzy różnymi częściami skryptu i przekazywania kontroli do innego polecenia, niż to, które jest zawarte w kolejnym wierszu pliku.

goto etykieta Skok do instrukcji oznaczonej zadaną etykietą.

goto: EOF Natychmiastowe zakończenie skryptu. Często jest to lepsze rozwiązanie, niż polecenie exit, gdyż kończy również działanie procesora poleceń.

:etykieta Definicja etykiety instrukcji.

call Wywołanie innego skryptu.

Oto prosty przykład:

C:\> type jump.bat

echo off

echo 1


goto frog

echo 2


frog:

echo 3


call lily

echo 4


C:\> type lily.bat

echo lily 1

goto:EOF

echo lily 2

C:\> jump

echo off


1

3

lily 1



4

Pętle


język skryptów Windows NT posiada dwie konstrukcje pętli:

for %%n in (lista) do polecenie Pętla na wszystkich elementach listy

for /L %%n in (start,zwi,koniec) do polecenie Tradycyjna pętla indeksowana

W pierwszej postaci parametr jest przypisywany każdemu z elementów listy kolejno. W drugiej postaci zadany parametr skryptu jest inicjowany przez wartość start, zwiększany o zwi za każdym wykonaniem pętli, a pętla kończy działanie, gdy przekroczy limit wyznaczony przez koniec (tzn. jeżeli wartość będzie mniejsza lub większa od koniec, w zależności od kierunku zliczania).

Oto przykładowy skrypt ilustrujący te pętle:

C:\> type loop.bat

echo off

for %%1 in (a b c) do echo %%1

rem Tradycyjna DOS-owa metoda na uzyskanie pustego wiersza

echo


for /L %%1 in (0, 5, 15) do echo %%1

C:\> loop

echo off

a

b



c

0

5



10

15

Istnieją dodatkowe, rzadziej stosowane postacie pętli for. Informacje na ich temat znajdziesz wywołując for /?.



Polecenia warunkowe

Polecenie if służy do tworzenia instrukcji warunkowych. Ma następujące postaci:

i f [not] errorlevel n polecenie Sprawdzenie wartości zmiennej errorlevel

i f [not] exists plik polecenie Sprawdzanie istnienia pliku

i f [not] [/I] Str1 op Str2 op Porównanie dwóch ciągów znaków

if [not] defined zm polecenie Sprawdzanie, czy zmienna została zdefiniowana

W niezanegowanej postaci pierwsze polecenie wykonuje zadane polecenie, gdy wartość zmiennej errorlevel jest większa niż lub równa n, drugie polecenie wykonuje zadane polecenie, jeżeli zadany plik istnieje, a trzecie, gdy porównanie zadanych ciągów znaków daje wartość True (opcja /I umożliwia wykonanie porównania z uwzględnieniem znaków). Czwarta postać wykonuje zadane polecenie, jeżeli wskazana zmienna została zdefiniowana.

Dostępne są pokazane poniżej operatory porównania ciągów znaków (działają one z uwzględnieniem wielkości znaków):

EQU == (dwa znaki równości); dwa ciągi znaków są równe.

NEQ Dwa ciągi znaków są różne.

LSS Pierwszy ciąg znaków jest leksykalnie mniejszy niż drugi.

LEQ Pierwszy ciąg znaków jest leksykalnie mniejszy lub równy drugiemu.

GTR Pierwszy ciąg znaków jest leksykalnie większy od drugiego.

GEQ Pierwszy ciąg znaków jest leksykalnie większy lub równy drugiemu.

Oto kilka prostych przykładów,:

C:\> type maybe.bat

echo off

silly 2> junk.junk

if errorlevel 1 echo Command failed.

if not exist c:\boot.ini echo Missing BOOT.INI file.

if not defined PATH echo No Path variable defined.

set a="apple"

set b="pear"

if /I %a% == "APPLE" echo crunch

if not %a% EQU %b% echo apples aren%'t pears

if %a% LSS %b% echo munch

C:\> maybe

Command failed.

crunch

apple aren't pears



munch

Przyjmowanie danych wejściowych użytkownika

Poniższe polecenia są stosowane do przyjmowania w skrypcie danych wprowadzanych przez użytkownika:

pause

Przerwanie wykonywania skryptu do momentu naciśnięcia klawisza przez użytkownika.



choice [/C:opcje][/S][/T:c,n] monit

Pokazanie użytkownikowi monitu i przyjmowanie odpowiedzi. Polecenie to nadaje zmiennej errorlevel wartość liczbową odpowiadającą dokonanemu wyborowi (numerowanie rozpoczyna się od 1). Poprawne jednoznakowe odpowiedzi są określane przez ciąg następujący po opcji /C (domyślnie YN). Opcja /S powoduje, że w wybieranych znakach są rozróżniane duże i małe litery (domyślnie nie są), a opcja /`T powoduje, że litera c jest wybierana domyślnie po upłynięciu zadanego czasu n sekund.

Oto prosty przykład:

C:\> type pick.bat

echo off

choice /C:abcde /T:b,4 "Wybierz literę od A do E: "

echo Wybrałeś %errorlevel% znak.

C:\> pick

Wybierz literę od A do E: [A,B,C,D,E]? D

Wybrałeś 4 znak.

C:\> pick

Wybierz literę od A do E : [A,B,C,D,E] ? Czas minął

Wybrałeś 2 znak.

PODSUMOWANIE
Serwery Windows NT są najszybciej rozwijanymi serwerami sieciowymi dostępnymi na rynku. Oferują one większości instalacji sieciowych wysoki poziom bezpieczeństwa, a obiektowy system zabezpieczeń umożliwia administratorom chronienie wszystkich plików znajdujących się na serwerze. Mimo, że należy pamiętać o kilku słabych punktach tego systemu, które mogą stanowić zagrożenie dla zasobów, jest on jednak stosunkowo dobrze zabezpieczony i dobrze chroni przechowywane dane.

Literatura:

CHIP-SPECIAL -czerwiec 1997;

CHIP 04/99,07/98 i archiwum WWW.CHIP.PL

PC-KURIER 2,6,13/97,i

ENTER 02/99;

TITTEL, HUDSON, STEWART - NT WORKSTATION 4

WINDOWS NT SERVER 4.0 ADMINISTRATOR BIBLIA - ROBERT COWART,

KENNETH GREGG;

WINDOWS NT SERVER 4.0 ADMINISTRACJA DLA PROFESJONALISTÓW;

HACKER PROOF, CZYLI JAK ZABEZPIECZYĆ SIĘ PRZED INTRUZAMI;



WINDOWS NT - CZARNA KSIĘGA ADMINISTRATORA;

WWW.MICROSOFT.COM/POLAND/NTS40/BEZPIECZENSTWO.HTM; WWW.NETSYS.COM/FIREWALLS/FIREWALLS-9512/0296.HTM1;



©operacji.org 2017
wyślij wiadomość

    Strona główna