Użytkownicy i grupy w Linuksie

by Patryk

Wyobraź sobie Linuksa jako tętniącą życiem metropolię. Każdy mieszkaniec (czyli użytkownik) ma własne „klucze” do określonych budynków i zasobów – plików, katalogów, usług. Te klucze nie są rozdawane przypadkowo. Użytkownicy są zorganizowani w grupy przypominające sąsiedztwa, w których mają wspólne zainteresowania i prawa dostępu. Podobnie Linuks dba o uprawnienia, właścicieli i grupy, dzięki czemu wszystko jest poukładane, przewidywalne i bezpieczne.

Jeśli chcesz sprawnie administrować systemem, konfigurować dostęp w firmie albo po prostu lepiej rozumieć Linuksa – użytkownicy i grupy to fundament.

Kim jest użytkownik w Linuxie

W kontekście Linuksa użytkownik to osoba lub proces, któremu system przyznaje dostęp do zasobów. Każde konto ma:

  • nazwę użytkownika (login),
  • UID (User ID) – unikalny identyfikator liczbowy,
  • przypisaną grupę główną (GID) oraz często grupy dodatkowe,
  • ustawienia takie jak katalog domowy i powłoka logowania (shell).

To właśnie UID/GID są kluczowe dla systemu uprawnień (właściciel pliku, grupa pliku, prawa dostępu). Każdy użytkownik ma swój własny zestaw przywilejów.

Typy użytkowników: standard i root

Najczęściej spotkasz dwa główne typy kont:

  • Użytkownik standardowy (standard user) – Ma ograniczone uprawnienia. Zwykle może modyfikować tylko pliki i katalogi, których jest właścicielem (lub do których ma uprawnienia). W wielu dystrybucjach konta „zwykłych” użytkowników mają UID od 1000 wzwyż (może się różnić w zależności od systemu).
  • Użytkownik administracyjny (root) -To konto z pełnymi uprawnieniami do systemu. Może czytać i modyfikować wszystko, uruchamiać dowolne procesy i zmieniać konfigurację. UID roota zawsze wynosi 0.

Jak rozpoznać, czy jesteś rootem

Najprościej po znaku zachęty w terminalu:

  • $ – zwykle oznacza użytkownika standardowego
  • # – zwykle oznacza roota

Tworzenie użytkowników

Linux daje kilka sposobów tworzenia kont. W praktyce najczęściej używa się poleceń, bo są szybsze, powtarzalne i mniej podatne na błędy.

useradd

useradd to jedno z najpopularniejszych narzędzi do tworzenia użytkowników. Jest bardzo elastyczne, bo ma dużo przełączników (UID, grupy, katalog domowy, shell itd.). Minusem jest to, że bez przełączników może utworzyć konto „minimalne” – zależnie od dystrybucji i konfiguracji.

Po utworzeniu użytkownika warto ustawić hasło:

  • passwd nazwa_użytkownika

Najczęściej używane przełączniki useradd

  • --badname – pomija część walidacji nazwy użytkownika
  • --home-dir – ustawia katalog domowy
  • --create-home – tworzy katalog domowy w domyślnej lokalizacji
  • --password – ustawia hasło (uwaga: może być widoczne w historii/podglądzie)
  • --shell – ustawia powłokę logowania

adduser

adduser jest zwykle „bardziej ludzki” i interaktywny: prowadzi przez proces tworzenia konta, zadając pytania (hasło, dane, ścieżki). Bardzo wygodny dla początkujących.

W dystrybucjach opartych o Debiana często jest dostępny domyślnie. W systemach z rodziny Red Hat może wymagać doinstalowania.

Konfigurację domyślnych wartości dla nowych kont często znajdziesz w:

  • /etc/adduser.conf

Wystarczy odkomentować daną linię i wpisać inną wartość. Przykładowo w linii z wartością DHOME możemy wpisać inny katalog domowy dla nowych użytkowników.

Ręcznie w /etc/passwd

Ostatnim sposobem jest zwyczajne dodanie użytkownika w pliku. Jak wiadomo w Linuxie wszystko znajduje się w plikach co za tym idzie znajdują się tam również użytkownicy. Informacje na temat użytkowników znajdują się w pliku /etc/passwd. Nie jest to jednak rekomendowany sposób, ponieważ trzeba wówczas utworzyć osobno grupę, hasło, oraz katalog domowy dla danego użytkownika.

Informacje o kontach zapisane są w pliku: /etc/passwd

Każdy użytkownik to jedna linia z polami oddzielonymi dwukropkami:

  • nazwa użytkownika
  • pole hasła (często x – a właściwy hash jest w /etc/shadow)
  • UID
  • GID
  • opis (np. imię/nazwisko)
  • katalog domowy
  • shell

Plik ten współdziała z plikiem /etc/shadow, w którym znajdują się zaszyfrowane hasła użytkowników. Znajdują się tam również informacje związane z hasłem takie jak data ostatniej zmiany oraz data wygaśnięcia konta

Usuwanie i modyfikacja użytkowników

Owszem, da się edytować pliki ręcznie aby usunąć użytkownika, ale w praktyce używa się poleceń, bo są bezpieczniejsze i robią „całą robotę” poprawnie.

userdel

userdel usuwa użytkownika po nazwie. Domyślnie często usuwa konto, ale może zostawić katalog domowy.

  • -r – usuwa też katalog domowy i pliki użytkownika
  • -f – wymusza usunięcie (np. nawet gdy użytkownik jest zalogowany)

usermod

usermod służy do zmiany parametrów istniejącego konta: katalogu domowego, grupy, daty wygaśnięcia itd.

Najczęściej używane przełączniki:

  • -c – zmienia komentarz/opis użytkownika
  • -d – zmienia katalog domowy
  • -e – ustawia datę wygaśnięcia konta
  • -g – zmienia grupę główną
  • -L – blokuje konto
  • -U – odblokowuje konto

💡 Alternatywnie można „odciąć” logowanie do powłoki ustawiając shell na /sbin/nologin (np. dla kont technicznych).

chage

Modyfikacji danych użytkownika możemy również dokonać za pomocą polecenia chage wykorzystując liczne przełączniki. Można też użyć samego poleceni chage i zmienić wszystkie wartości.

Domyślna struktura katalogów dla użytkownika

Katalog /etc/skel działa jak szablon (szkielet). To, co w nim umieścisz, zostanie skopiowane do katalogu domowego przy tworzeniu nowego użytkownika. Świetne do przygotowania:

  • domyślnych plików konfiguracyjnych,
  • katalogów startowych,
  • skrótów/dowiązań symbolicznych.

Przykładowo możemy utworzyć w katalogu /home katalog wspolny do którego mają mieć dostęp wszyscy nowo tworzeni użytkownicy. Możemy wówczas utworzyć dowiązanie symboliczne do katalogu /home/wspolny w katalogu /etc/skel pod nazwą “KatalogWspolny”. Należy również utworzyć grupę wspolny i dodawać do niej użytkowników, którzy mają mieć dostęp do tego katalogu.

groupadd wspolny
mkdir -p /home/wspolny
chown root:wspolny /home/wspolny
chmod g+s /home/wspolny
     setgid: nowe pliki dziedziczą grupę "wspolny"
ln -s /home/wspolny /etc/skel/KatalogWspolny

Sudo – jak dać użytkownikowi uprawnienia admina

Domyślnie nowo utworzeni użytkownicy zwykle nie mają prawa do sudo. A sudo pozwala wykonywać polecenia administracyjne bez logowania na roota.

Jeśli nie masz sudo (np. na świeżej instalacji):

  • apt install sudo (Debian/Ubuntu)

Uprawnienia sudo konfiguruje się w:

  • /etc/sudoers (zwykle edytowane przez visudo, aby uniknąć błędów składni)

✅ Dobra praktyka: stosuj zasadę najmniejszych uprawnień — dawaj tylko tyle, ile jest potrzebne do pracy.

Tworzenie i zarządzanie grupami

Grupy umożliwiają organizowanie użytkowników o podobnych potrzebach, ułatwiając efektywne zarządzanie uprawnieniami i współdzieleniem zasobów. Na przykład wszyscy użytkownicy działu IT mogą należeć do grupy nazwanej IT. Zamiast zarządzać uprawnieniami dla każdego użytkownika, administratorzy mogą przydzielać uprawnienia na poziomie grupy, upraszczając proces zarządzania i zapewniając spójność w całym systemie.

Takie podejście nie tylko oszczędza dużo czasu, ale także zwiększa bezpieczeństwo systemu, zmniejszając prawdopodobieństwo błędnej konfiguracji uprawnień. Każda grupa ma swój identyfikator (GID), który odróżnia ją od innej w systemie.

Każda grupa ma:

  • nazwę,
  • GID (Group ID),
  • listę członków.

Do tworzenia i usuwania grup możesz użyć poleceń:

addgroup – tworzenie grupy
delgroup – usuwanie grupy

Aby dodać lub usunąć użytkownika z grup możesz użyć poleceń:

adduser użytkownik grupa
deluser użytkownik grupa

Do zmiany nazwy grupy służy polecenie:

groupmod -n informatycyHD informatycy

Zmiany tej możemy również dokonać w pliku /etc/group. W pliku tym znajdziemy wszystkie grupy. Na jedną grupę użytkowników przypada jedna linia zawierająca cztery, oddzielone dwukropkami pola:

  • Nazwa grupy
  • Hasło w postaci zakodowanej
  • Numeryczny identyfikator grupy (GID)
  • Członkowie grupy

You may also like

Leave a Comment