Podstawy Linux #7: Zarządzanie systemem

Ta lekcja obejmuje codzienne zadania administratora serwera: zarządzanie użytkownikami, uprawnieniami, procesami, pakietami i monitorowanie zasobów.

Użytkownicy i grupy

Tworzenie i zarządzanie użytkownikami

sudo adduser roman           # tworzy użytkownika (interaktywnie, pyta o hasło)
sudo useradd -m jan          # tworzy użytkownika (bez interakcji, -m tworzy katalog domowy)
sudo passwd roman            # zmienia/ustawia hasło
sudo userdel roman           # usuwa użytkownika
sudo userdel -r roman        # usuwa użytkownika + jego katalog domowy

Grupy

sudo usermod -aG sudo roman      # dodaj do grupy sudo (uprawnienia admina)
sudo usermod -aG docker roman    # dodaj do grupy docker
groups roman                      # pokaż grupy użytkownika
id roman                          # szczegóły: UID, GID, grupy

💡 Podpowiedź

Flaga -aG oznacza “append to Group” — dodaje do grupy bez usuwania z innych. Bez -a nadpisałbyś wszystkie grupy!

Uprawnienia

chmod — zmiana uprawnień

chmod 755 skrypt.sh      # właściciel: rwx, grupa: r-x, inni: r-x
chmod 644 config.yml     # właściciel: rw-, grupa: r--, inni: r--
chmod +x skrypt.sh       # dodaj prawo wykonywania
chmod -w plik.txt        # zabierz prawo zapisu

Numerycznie: r=4, w=2, x=1. Sumuj dla właściciel/grupa/inni.

Wartość Uprawnienia Znaczenie
7 rwx odczyt + zapis + wykonywanie
6 rw- odczyt + zapis
5 r-x odczyt + wykonywanie
4 r– tylko odczyt

chown — zmiana właściciela

sudo chown roman:roman plik.txt          # zmień właściciela i grupę
sudo chown -R roman:roman /opt/app/      # rekurencyjnie cały katalog

sudo — wykonaj jako administrator

sudo apt update                  # jednorazowe polecenie jako root
sudo -s                          # otwórz shell jako root
sudo su - roman                  # przełącz się na innego użytkownika

⚠️ Uwaga

Unikaj pracy jako root na co dzień. Używaj sudo do pojedynczych komend — to bezpieczniejsze.

Procesy

Wyświetlanie procesów

ps aux                           # wszystkie procesy
ps aux | grep nginx              # znajdź procesy Nginx
top                              # monitor w czasie rzeczywistym (q = wyjście)
htop                             # ładniejszy monitor (trzeba zainstalować)

Zarządzanie procesami

kill 1234                        # zakończ proces o PID 1234
kill -9 1234                     # wymuś zakończenie (gdy zwykły kill nie działa)
killall nginx                    # zakończ wszystkie procesy "nginx"

📋 Scenariusz: Kto zajmuje port 80?

sudo ss -tlnp | grep :80

Wynik np.: LISTEN 0 511 *:80 ... users:(("nginx",pid=1234,...)) — to Nginx na PID 1234.

Monitorowanie zasobów

Pamięć RAM

free -h

Wynik:

              total    used    free    shared  buff/cache   available
Mem:          3.8Gi   1.2Gi   512Mi    45Mi     2.1Gi       2.3Gi

💡 Podpowiedź

Kolumna available to ile pamięci faktycznie możesz użyć (free + buff/cache do zwolnienia).

Dysk

df -h                    # wykorzystanie partycji
du -sh /var/log          # rozmiar konkretnego katalogu
du -sh /var/log/*        # rozmiar każdego elementu w katalogu

📋 Scenariusz: Dysk pełny — co zajmuje miejsce?

du -sh /var/log/* | sort -rh | head -10

Top 10 największych plików/katalogów w /var/log.

Zarządzanie pakietami (Debian/Ubuntu)

Podstawowe operacje

sudo apt update                  # odśwież listę pakietów
sudo apt upgrade                 # zaktualizuj zainstalowane pakiety
sudo apt install htop            # zainstaluj pakiet
sudo apt remove htop             # odinstaluj (zostawia konfigurację)
sudo apt purge htop              # odinstaluj + usuń konfigurację
sudo apt autoremove              # usuń nieużywane zależności

💡 Podpowiedź

Zawsze rób apt update przed apt install — inaczej możesz instalować nieaktualną wersję.

Sprawdzanie pakietów

apt list --installed             # lista zainstalowanych
apt search nginx                 # szukaj pakietu
apt show nginx                   # szczegóły pakietu
dpkg -l | grep nginx             # czy pakiet jest zainstalowany

Zmienne środowiskowe

echo $PATH                       # ścieżki do programów
echo $HOME                       # katalog domowy
echo $USER                       # bieżący użytkownik
printenv                         # wszystkie zmienne
export MY_VAR="wartość"          # ustaw zmienną (do końca sesji)

Żeby zmienna przetrwała restart, dodaj ją do ~/.bashrc:

echo 'export MY_VAR="wartość"' >> ~/.bashrc
source ~/.bashrc                 # załaduj bez restartu

Restart i wyłączanie

sudo reboot                      # restart serwera
sudo shutdown -h now             # wyłączenie natychmiast
sudo shutdown -r +5              # restart za 5 minut

Historia komend

history                          # pokaż historię
history | grep apt               # szukaj w historii
!123                             # uruchom ponownie komendę nr 123
!!                               # uruchom ponownie ostatnią komendę
sudo !!                          # uruchom ostatnią komendę z sudo

Podsumowanie

Komenda Co robi
adduser / useradd Tworzenie użytkownika
usermod -aG Dodanie do grupy
chmod / chown Uprawnienia / właściciel
sudo Wykonaj jako admin
ps aux / top Procesy
kill Zakończ proces
free -h / df -h RAM / dysk
apt update/install Zarządzanie pakietami
history Historia komend
Roman Rozenberger
Roman Rozenberger

Jestem digital marketerem ze specjalizacją w marketingu w wyszukiwarkach internetowych. Wdrażam automatyzacje z wykorzystaniem narzędzi LowCode, NoCode i AI. Identyfikuje procesy i rozwiązuję problemy.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *