Opracowanie pytań na egzamin magisterski
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

Zarządzanie użytkownikami i grupami w systemie Linux

W systemie Linux, podobnie jak we wszystkich systemach uniksowych, każdy użytkownik posiada unikalny numer UID, a każda grupa numer GID (przy czym przyjmuje się, że numery poniżej 1000 są zarezerwowane dla użytkowników i grup systemowych). Do grupy mogą należeć tylko użytkownicy – nie mogą należeć do nich inne grupy. Użytkownik jest przypisany do określonej grupy bazowej, poza którą może też należeć do innych grup (co wykorzystuje się do przydzielania uprawnień do różnych zasobów systemu). Dodatkowo, użytkownik posiada przypisany katalog domowy, przeznaczony na przechowywanie swoich plików (zazwyczaj znajdujący się w katalogu /home), a także powłokę używaną po zalogowaniu do pracy z linią komend.

Podstawowym miejscem przechowywania danych o użytkownikach i grupach są pliki tekstowe:

  • /etc/passwd – baza użytkowników,
  • /etc/group – baza grup,
  • /etc/shadow – baza haseł użytkowników (właściwie hashy haseł).

Najprostszym możliwym sposobem zarządzania użytkownikami i grupami jest ręczna edycja tych plików w edytorze tekstu. Sposób ten jest mało wygodny i zwykle nie zaleca się go z powodu możliwości popełnienia błędów składniowych, ale może czasami być przydatny (np. w razie awarii systemu, czy też przenoszenia bazy kont między systemami) i warto o nim pamiętać. Najczęściej do zarządzania użytkownikami i grupami używa się poleceń:

  • useradd, userdel, usermod i analogiczne dla grup – polecenia nieinteraktywne o dość rozbudowanej składni parametrów, zainstalowane domyślnie w prawie każdej dystrybucji,
  • adduser, deluser i analogiczne dla grup – polecenia interaktywne przeznaczone dla mniej doświadczonych osób, ale nie wszędzie domyślnie zainstalowane,
  • passwd – polecenie do zmiany hasła bieżącego użytkownika (domyślnie) lub dowolnego użytkownika określonego jako parametr (w przypadku administratora).

Dodatkowo, oprócz opisanych wcześniej plików, system może korzystać z innej bazy kont – np. na serwerze LDAP (rozwiązanie podobne do domeny Active Directory w przypadku systemu Windows).

W systemie zawsze istnieje użytkownik root – administrator, który posiada wszystkie możliwe uprawnienia (przysłowie ang. root or god, no difference at all). Ze względu na tę wszechmoc oczywiście nie powinno się konta roota używać do pracy na co dzień, tylko w razie potrzeby ;-)
Innym użytkownikom (lub grupom) uprawnienia administracyjne można przyznawać za pomocą programu sudo – na równi z rootem lub w ograniczonym zakresie (np. do wykonywania określonych poleceń).

Usługi katalogowe systemu Windows Server 20xx

System Windows posiada własną implementację usług katalogowych pod nazwą Active Directory. Umożliwa ona grupowanie komputerów w domeny Windows i scentralizowaną administrację połączonymi w ten sposób maszynami. Bazuje na 3 protokołach: LDAP, Kerberos i DNS.

Na wszystkich komputerach włączonych w domenę można logować się za pomocą tych samych kont, przechowywanych na serwerze pełniącym rolę kontrolera domeny (w celu zapewnienia redundancji, takich serwerów może być kilka). Tych samych danych można też używać, aby zapewnić dostęp do zasobów udostępnionych w domenie, np. katalogów sieciowych lub drukarek, a dzięki wykorzystaniu pojedynczego uwierzytelnienia (ang. SSO), hasło wystarczy podać tylko raz przy logowaniu do systemu. Z kolei dzięki zintegrowaniu z kontrolerem domeny serwera DNS, do komputerów wchodzących w skład domeny można odwoływać się za pomocą adresów domenowych zamiast adresów IP. Centralne logowanie można również rozszerzyć o przechowywany na serwerze profil użytkownika (profil mobilny).

Jednym z podstawowych celów tworzenia domen Active Directory jest kontrola uprawnień użytkowników – i ona w AD jest mocno rozbudowana. Możliwe jest między innymi:

  • przydzielanie lub odmawianie dostępu użytkownikom do konkretnych komputerów i zasobów wchodzących w skład domeny,
  • kontrolowanie uprawnień użytkowników w systemie oraz centralna konfiguracja wielu ustawień systemu operacyjnego na komputerach w domenie (za pomocą zasad grupowych),
  • logiczne grupowanie zasobów według dowolnych kryteriów w hierarchię jednostek organizacyjnych,
  • delegowanie kontroli administracyjnej nad domeną lub poszczególnymi jednostkami organizacyjnymi określonym użytkownikom.

Pomiędzy różnymi domenami Active Directory można definiować jednostronne lub dwustronne relacje zaufania, aby umożliwić użytkownikom jednej domeny dostęp do zasobów innej. Domeny można też hierarchicznie łączyć w drzewo, wtedy relacje zaufania są tworzone automatycznie.

Do domeny mogą należeć komputery z systemem operacyjnym Windows od wersji 2000, w edycji przeznaczonej do użytku w firmach (wersje z licencją przeznaczoną do użytku domowego są pozbawione tej funkcjonalności), a po odpowiednim skonfigurowaniu usługi Active Directory – także komputery z systemami Linux lub Unix. Kontrolerem domeny może być komputer z systemem Windows Server również od wersji 2000, albo komputer z systemem Linux i zainstalowanym serwerem Samba 4 (wariant alternatywny, w całości bazujący na oprogramowaniu otwartoźródłowym).

Sposoby zarządzania informacją i pamięciami masowymi

Podstawowym sposobem zarządzania pamięciami masowymi jest grupowanie ich w macierze RAID (ang. Redundant Array of Independent Disks). Dyski połączone w taką macierz współpracują między sobą i są widoczne w systemie jako jedna logiczna całość. Najczęściej stosuje się następujące rodzaje RAID:

  • RAID 0 (ang. striping) – dane są dzielone na bloki i zapisywane częściowo na każdym z dysków, co pozwala uzyskać największą możliwą pojemność (dla N dysków: rozmiar najmniejszego dysku * N) i wysoką wydajność macierzy (równoległość operacji), kosztem niezawodności – awaria nawet jednego dysku powoduje utratę danych,
  • RAID 1 (ang. mirroring) – dane są replikowane na każdym z dysków macierzy, co pozwala uzyskać największą możliwą niezawodność (w N-dyskowej macierzy możliwa jest awaria N-1 dysków), przy niewielkiej pojemności macierzy – równej rozmiarowi najmniejszego dysku,
  • RAID 5 – wymaga minimum 3 dysków, dane są dzielone na bloki w liczbie N-1 dla N-dyskowej macierzy plus 1 blok sumy kontrolnej i zapisywane na wszystkich dyskach z rozproszeniem bloków kontrolnych, co pozwala uzyskać pojemność macierzy równą rozmiarowi najmnieszego dysku * N-1, przy zwiększonej wydajności operacji odczytu i odporności na awarię jednego dysku (w takiej sytuacji brakujące bloki są obliczane w locie na podstawie sum kontrolnych, co wiąże się z przejściowym pogorszeniem wydajności),
  • RAID 6 – wymaga minimum 4 dysków, konfiguracja podobna do RAID 5 – z tą różnicą, że zapisywane są 2 bloki sumy kontrolnej, dzięki czemu macierz jest odporna na awarię dwóch dysków, ale jej pojemność jest mniejsza – równa rozmiarowi najmniejszego dysku * N-2.

Istnieją również inne rodzaje macierzy, łączące cechy RAID 0 i 1. W zastosowaniach serwerowych (gdzie istotna jest niezawodność) najczęściej stosuje się RAID 5 i 6, albo w przypadku małych 2-dyskowych konfiguracji – RAID 1. Często stosowanym uzupełnieniem macierzy RAID jest dysk hot spare – w normalnej sytuacji nieaktywny, natomiast automatycznie uruchamiany i dołączany do macierzy w razie awarii jednego z pracujących dysków. Pozwala to zminimalizować czas potrzebny na powrót macierzy RAID do pełnej sprawności po awarii. Dobrą praktyką jest budowanie macierzy RAID z dysków różnych producentów lub z dysków tego samego producenta, ale z różnych serii produkcyjnych – pozwala to uchronić macierz przed utratą z powodu awarii kilku dysków w zbliżonym czasie na skutek wady fabrycznej. Warto też mieć na miejscu rezerwowy dysk na wymianę, co niby jest oczywiste, ale chyba jednak nie zawsze – doświadczenia własne ;-)

Macierz RAID może być zarządzana przez sprzętowy kontroler (co odciąża procesor komputera – często, choć nie zawsze, stosowane w sprzęcie serwerowym) lub przez system operacyjny (co z kolei pozwala stworzyć taką macierz właściwie na dowolnej maszynie).

Pamięć masową można centralizować i udostępniać innym komputerom przez sieć. Zaletą takiego podejścia jest często lepsze wykorzystanie przestrzeni dyskowej i możliwość łatwiejszego zabezpieczenia przed utratą danych (np. strategia kopii zapasowych konieczna tylko dla jednego, centralnego systemu). Stosuje się tutaj dwie zbliżone, ale różniące się sposobem działania techniki:

  • NAS (ang. Network-Attached Storage) – dostęp do danych jest realizowany na poziomie plikowym za pomocą protokołów udostępniania plików przez sieć IP (np. SMB – Windows, NFS – Linux i inne systemy uniksowe), system plików jest obsługiwany po stronie serwera,
  • SAN (ang. Storage Area Network) – dostęp do danych jest realizowany na poziomie blokowym za pomocą specjalnych sieci (np. Fibre Channel) lub protokołów wykorzystujących sieć IP (np. iSCSI), system plików jest obsługiwany po stronie klienta – z jego punktu widzenia dysk sieciowy widoczny jest jako wirtualne urządzenie, a przez sieć transmitowane są komendy podobne do używanych w komunikacji z lokalnymi dyskami.

Rozwiązanie NAS przydatne jest przede wszystkim wtedy, kiedy wielu użytkowników współdzieli pliki przechowywane na serwerze. Z kolei rozwiązanie SAN pozwala wykorzystywać na wyłączność różnym komputerom (np. serwerom) zdalnie udostępnioną pamięć masową do przechowywania danych, zamiast dysków lokalnych – ponieważ do tego samego fragmentu pamięci udostępnionej na poziomie blokowym równocześnie dostęp może mieć tylko jeden klient.