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
sudozamiast logowania się jakoroot.
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.