System Linux dosyć stanowczo i to od dłuższego okresu czasu, podchodzi do tematu bezpieczeństwa danych. Wychodzi on z założenia, że dostęp do komputerów, a także danych w nim zawartych jest powszechny. Stąd też wszelkie zastosowane w nim zabezpieczenia.

Przy uruchomieniu systemu użytkownik jest proszony o hasło, przy instalacji programów i wszelkich istotnych zmian także. Poza tym, nie każdy użytkownik może sobie pozwolić na wszystko - tj. tylko pewne grupy mogą na przykład coś dodać, zainstalować w systemie, bądź coś z niego usunąć. To oczywiście przykład zastosowania uprawnień. Jak to wygląda w praktyce?

Użytkownik w Linuksie

Użytkownik w systemie Linux jest widoczny pod UID, czyli jego indywidualnie przydzielonym numerze. Zastosowanie tego typu numeracji ułatwia późniejsze zarządzanie plikami. Plikiem natomiast jest „wszystko” w systemie Linux - od pliku zwykłego napisanego przez nas tekstu, po klawiaturę, myszkę, urządzenia wyjściowe i wejściowe (katalog /dev/). Oprócz tego każdy użytkownik posiada również swoją nazwę (podobnie jak w systemach Windows).

Dane użytkownika zapisywane są w plikach: /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow. Dwa ostatnie pliki dotyczą grup, w jakich znajduje się dany użytkownik.

Plik /etc/passwd zawiera listę użytkowników w systemie. Niektórzy są uprawnieni do logowania się, natomiast niekoniecznie muszą być. Mogą być uprawnieni tylko na przykład do określonych plików.

Schemat pliku /etc/passwd przedstawia się następująco:

[login name] : [hasło] : [UID] : [GID] : [dane identyfikacyjne] : [home] : [shell]

Login name to nazwa użytkownika (8-32 znaków, mogą to być litery, cyfry i znaki specjalne oprócz dwukropka). Wielkość liter ma znaczenie. Hasło jest umieszczone w odrębnym pliku, do którego dostęp ma tylko root. Natomiast literą „x” określa się obecność hasła, a brak tej litery oznacza brak hasła.

GID to numer grupy, do jakiej należy użytkownik. Dane identyfikacyjne określane są przez osobny program, dodatkowo opisują one danego użytkownika. Home to ścieżka do katalogu domowego użytkownika (najczęściej jest to /home/nazwa_uzytkownika). Shell to ścieżka do powłoki, jaka ma zostać uruchomiona przy logowaniu użytkownika.

Hasła zapisywane są w pliku /etc/shadow. Można w nim ustawić także maksymalną ważność hasła, minimalną ważność hasła etc.


Grupy w Linuksie

Grupy w systemie Linux zostały stworzone w celu uproszczenia pracy i zarządzania użytkownikami. Prosty przykład - dostęp do danego katalogu ma mieć student1, student2, student3 i jeszcze 50 innych studentów. Zamiast oddzielnie każdemu studentowi przydzielać tam dostęp, przydziela się ich do jednej grupy „student”. A tej grupie daje się określone przez nas uprawnienia. Potem w celu zmiany nie musimy edytować uprawnień każdemu użytkownikowi z osobna, a edytujemy tylko uprawnienia grupy.

Oprócz tego dosyć ciekawym „trickiem” jest udostępnienie jednej nazwy użytkownika kilku osobom, ale przydzielenie im różnych haseł. W systemie Linux jest to możliwe, aby konkretny użytkownik posiadał kilka haseł dostępowych.

Każdy użytkownik może należeć do kilku grup naraz, więc jest to kolejne uproszczenie dotyczące nadawania uprawnień. Informacje o grupach znajdują się w pliku /etc/group.

Struktura tego pliku wygląda następująco:

[nazwa grupy] : [hasło] : [GID] : [lista użytkowników należących do grupy]

Pierwsza pozycja to nazwa grupy. Przy tworzeniu nowego użytkownika, jeśli nie przydzielimy go do jakiejś konkretnej grupy zostanie utworzona, oprócz nowego użytkownika także nowa grupa - jej nazwa to nazwa nowo utworzonego użytkownika.

Podobnie jak w pliku /etc/passwd w przypadku hasła podajemy albo „x” albo nie wpisujemy nic. Hasła znajdują się w pliku /etc/gshadow. Hasło umożliwia nam przelogowanie się do jakiejś grupy, administrowanie nią.

GID to numer identyfikacji grupy.

Komendy do zarządzania użytkownikami i grupami

Wymienię w tym miejscu najważniejsze komendy. Pierwszą z nich jest useradd. Dzięki niej dodajemy nowego użytkownika. Wymagane jest podanie nazwy użytkownika, reszta jest opcjonalna.

Przykład: useradd -b nazwa_katalogu_domowego -g numer_GID -p hasło

Możemy też szybko usunąć konkretnego użytkownika za pomocą userdel. Gdzie: -r to usunięcie katalogu domowego użytkownika, -f to wymuszenie usunięcia nawet gdy użytkownik jest zalogowany, -p to ustawienie hasła „niemożliwego”, aby można było korzystać z konta, ale nie było możliwości zalogowania.

Przykład: userdel -r / -p / -f nazwa_użytkownika

Hasło zmienimy za pomocą passwd. Będąc zalogowanym jako root mamy kilka możliwości konfiguracji tej komendy, natomiast podstawowe wygląda tak:

Przykład: passwd nazwa_użytkownika (potem zostaniemy poproszeni o podanie hasła jakie chcemy ustawić).

Usermod umożliwia zmianę poszczególnych ustawień danego konta, jest to zbliżone do poleceń useradd i passwd. Poniższe polecenie zablokuje konto danego użytkownika:

Przykład: usermod -L nazwa-użytkownika

Finger pokazuje nam informacje o użytkowniku, takie jak data utworzenia konta, nieprzeczytane maile, ścieżkę do jego katalogu domowego etc.

Przykład: finger nazwa_użytkownika

Dzięki groupadd możemy dodać nową grupę. Wymagane jest podanie nazwy grupy.

Przykład: groupadd -g gid_czyli_identyfikator -p hasło_grupy -r (czyli jako grupa systemowa nazwa_grupy

Usunąć grupę możemy za pomocą groupdel. Wymagane jest podanie nazwy grupy, można ją usunąć, gdy nie należy do niej żaden użytkownik oraz nie jest to grupa podstawowa dla żadnego użytkownika.

Przykład: groupdel nazwa_grupy

Pozostałe ciekawe polecenia to:

Podsumowanie

Architektura systemu Linux jest dobrze przemyślana. Administrowanie danymi jest proste - czyli dodawanie, usuwanie a także modyfikowanie ustawień. Moim zdaniem dzięki takiemu zapisowi, oraz dzięki grupom i kilku trickom, o których wspomniałem - administrowanie użytkownikami w Linuksie nie powinno sprawiać trudności.

↑ Skocz do góry

Autor: Bartosz Stefanicki.
Tagi: , , .

Dodaj komentarz

Bądź pierwszy!

avatar
wpDiscuz