Zarządzanie użytkownikami i grupami w systemie Linux

Zarządzanie użytkownikami i grupami w systemie Linux

Każdy system Linux obsługuje wielu użytkowników, a ich uprawnienia, role i dostęp do zasobów są kontrolowane przez mechanizmy kont i grup. Właściwe zarządzanie użytkownikami jest kluczowe dla bezpieczeństwa i stabilności systemu. W tym artykule omówię, jak tworzyć, modyfikować i usuwać użytkowników i grupy, a także jak nadawać im odpowiednie uprawnienia.


1. Użytkownicy w systemie Linux

Użytkownik w systemie Linux to jednostka posiadająca unikalne konto identyfikowane przez nazwę użytkownika (login) oraz numer UID (User ID). Każdy użytkownik ma przypisaną domyślną grupę (GID – Group ID) oraz katalog domowy, w którym przechowywane są jego pliki i konfiguracje.

Podstawowe informacje o użytkownikach przechowywane są w pliku:

/etc/passwd

Każdy wiersz w tym pliku zawiera dane w postaci:

nazwa_uzytkownika:x:UID:GID:katalog_domowy:wywołanie_powłoki

Przykład:

janek:x:1001:1001:Jan Kowalski:/home/janek:/bin/bash

Hasła użytkowników przechowywane są w pliku:
/etc/ shadow

Jest on dostępny tylko dla administratora (root) i zawiera zaszyfrowane wartości haseł oraz politykę ich ważności.


2. Tworzenie i usuwanie użytkowników

Tworzenie nowego użytkownika odbywa się za pomocą polecenia useradd lub jego interaktywnego odpowiednika adduser.

Przykład utworzenia nowego konta:

sudo adduser janek

Podczas tworzenia konta zostanie automatycznie utworzony katalog domowy, a użytkownikowi można przypisać hasło:

sudo passwd janek

Usuwanie konta użytkownika:

sudo deluser janek

Usuwanie konta wraz z katalogiem domowym:

sudo deluser --remove-home janek

3. Modyfikowanie użytkowników

Zmiany w istniejącym koncie użytkownika można wprowadzać poleceniem usermod. Pozwala ono m.in. zmieniać nazwę konta, katalog domowy, powłokę lub przypisanie do grup.

Przykłady:

sudo usermod -l jan nowy_janek     # zmiana nazwy użytkownika
sudo usermod -d /home/nowy_home janek   # zmiana katalogu domowego
sudo usermod -s /bin/zsh janek    # zmiana powłoki logowania
sudo usermod -aG sudo janek       # dodanie użytkownika do grupy sudo

Warto pamiętać, że opcja -aG oznacza dodanie użytkownika do dodatkowej grupy bez usuwania z istniejących.


4. Grupy użytkowników

Grupy w systemie Linux służą do organizowania użytkowników i ułatwiają zarządzanie uprawnieniami do plików i zasobów. Każdy użytkownik należy do co najmniej jednej grupy – swojej głównej – oraz opcjonalnie do grup dodatkowych.

Informacje o grupach znajdują się w pliku:

/etc/group

Przykładowy wpis:

programisci:x:1002:janek,kasia,adam

W tym przykładzie grupa programisci ma identyfikator GID 1002 i zrzesza trzech użytkowników.


5. Tworzenie i modyfikowanie grup

Tworzenie nowej grupy:

sudo groupadd devops

Dodawanie użytkownika do grupy:

sudo usermod -aG devops janek

Wyświetlanie listy grup użytkownika:

groups janek

Usuwanie grupy:

sudo groupdel devops

6. Uprawnienia i właścicielstwo plików

Każdy plik i katalog w systemie Linux ma przypisanego właściciela oraz grupę. Uprawnienia definiują, kto może dany plik odczytać, zapisać lub uruchomić.

Zmiana właściciela pliku:

sudo chown janek dokument.txt

Zmiana grupy właściciela:

sudo chgrp programisci raport.log

Zmiana właściciela i grupy jednocześnie:

sudo chown janek:programisci projekt.cpp

Wyświetlanie informacji o uprawnieniach:

ls -l

Przykładowy wynik:

-rw-r--r-- 1 janek programisci 2048 Nov 2 10:00 raport.log

7. Zarządzanie dostępem administracyjnym (sudo)

Użytkownicy posiadający uprawnienia administracyjne należą do grupy sudo (w niektórych dystrybucjach wheel). Pozwala to na wykonywanie poleceń z uprawnieniami superużytkownika bez konieczności logowania się na konto root.

Dodawanie użytkownika do grupy sudo:

sudo usermod -aG sudo janek

Sprawdzanie członkostwa w grupach:

id janek

Plik konfiguracyjny /etc/sudoers definiuje, którzy użytkownicy mogą wykonywać polecenia administracyjne. Jego edytowanie powinno odbywać się za pomocą polecenia:

sudo visudo

8. Blokowanie i odblokowywanie kont

Czasami istnieje potrzeba tymczasowego zablokowania konta użytkownika, np. w celach bezpieczeństwa. Można to zrobić poleceniem:

sudo usermod -L janek

Odblokowywanie konta:

sudo usermod -U janek

Sprawdzanie stanu konta:

sudo passwd -S janek

9. Dobre praktyki zarządzania kontami

  • tworzenie osobnych kont dla każdego użytkownika zamiast korzystania ze wspólnych,
  • stosowanie silnych haseł i regularna ich zmiana,
  • przydzielanie minimalnych uprawnień – tylko niezbędnych do pracy,
  • grupowanie użytkowników według ról (np. devops, admin, finance),
  • regularne przeglądanie listy użytkowników i grup,
  • stosowanie sudo zamiast logowania się jako root.

10. Podsumowanie

Zarządzanie użytkownikami i grupami w systemie Linux stanowi podstawę bezpieczeństwa i kontroli dostępu. Świadome tworzenie kont, przypisywanie ról i ograniczanie uprawnień pozwala utrzymać system w dobrej kondycji. Stosowanie poleceń takich jak useradd, usermod, groupadd czy chown umożliwia pełną kontrolę nad dostępem do zasobów.

Dbałość o poprawną strukturę kont użytkowników, odpowiednie przypisanie do grup oraz stosowanie zasady najmniejszych uprawnień (PoLP – Principle of Least Privilege) pozwala na zachowanie równowagi między bezpieczeństwem a wygodą pracy w środowisku wieloużytkownikowym.

Przewijanie do góry