Ćwiczenia z systemu Linux (INF.02)

Wielodostępny system operacyjny Linux

Wiadomości wstępne dotyczące architektury systemu Linux

Wypisz i krótko opisz podstawowe komponenty systemu Linux.

uname -a
ps -p 1
ls /bin
echo $SHELL

Zarządzanie procesami w systemie Linux

Uruchom dowolny program w tle, sprawdź jego PID, a następnie zakończ go.

sleep 300 &
ps aux | grep sleep
kill [PID]

Tworzenie kont użytkowników w środowisku tekstowym

Stwórz użytkownika uczen1 z domyślnym katalogiem i powłoką bash.

sudo useradd -m -s /bin/bash uczen1
sudo passwd uczen1

🛠️ Zarządzanie kontami użytkowników – zaawansowane

Zadanie: Ustaw datę wygaśnięcia konta użytkownika

Utwórz użytkownika praktykant z ważnością konta do końca bieżącego miesiąca.

sudo useradd -e 2025-05-31 praktykant
sudo passwd praktykant
sudo chage -l praktykant

🔐 Zabezpieczanie kont

Zadanie: Zablokuj i odblokuj konto użytkownika

Zablokuj konto uczen1, a następnie je odblokuj.

sudo usermod -L uczen1
sudo usermod -U uczen1

📂 Operacje na katalogach – praktyczne

Zadanie: Stwórz katalog z ograniczonym dostępem

Utwórz katalog sekretne i nadaj mu takie uprawnienia, by tylko właściciel miał dostęp.

mkdir sekretne
chmod 700 sekretne

🔍 Znajdowanie i filtrowanie plików

Zadanie: Znajdź pliki starsze niż 7 dni

W katalogu /home/uczen1 znajdź wszystkie pliki starsze niż 7 dni.

find /home/uczen1 -type f -mtime +7

🧵 Procesy – zaawansowane monitorowanie

Zadanie: Znajdź procesy zużywające najwięcej pamięci

Wyświetl 5 procesów, które zużywają najwięcej pamięci RAM.

ps aux --sort=-%mem | head -n 6

📦 Menedżer pakietów

Zadanie: Zainstaluj i usuń program htop

Zainstaluj program htop, uruchom go, a następnie odinstaluj.

sudo apt install htop
htop
sudo apt remove htop

🌐 Sieć – diagnostyka połączenia

Zadanie: Sprawdź połączenie z serwerem DNS Google

Użyj narzędzia ping, aby sprawdzić, czy można nawiązać połączenie z adresem 8.8.8.8.

ping 8.8.8.8 -c 4

🧭 Harmonogram zadań (cron)

Zadanie: Utwórz zadanie, które codziennie o 12:00 zapisze datę do pliku

Edytuj crontab użytkownika, aby co dzień o 12:00 zapisywał bieżącą datę do ~/logi/data.txt.

crontab -e
# Dodaj linię:
0 12 * * * date >> ~/logi/data.txt

📜 Logi systemowe

Zadanie: Sprawdź ostatnie 10 wpisów z dziennika systemowego

Wyświetl ostatnie wpisy z pliku /

📁 Operacje na plikach

Zadanie: Sprawdź uprawnienia pliku

Sprawdź uprawnienia do pliku /etc/passwd oraz zmodyfikuj je, by tylko właściciel miał pełny dostęp.

ls -l /etc/passwd
        sudo chmod 600 /etc/passwd
        ls -l /etc/passwd

🔒 Zabezpieczenia systemu

Zadanie: Włącz SELinux

Sprawdź status SELinux w systemie i włącz go, jeśli jest wyłączony.

sestatus
        sudo setenforce 1
        sestatus

📡 Monitorowanie systemu

Zadanie: Monitorowanie aktywności sieciowej

Użyj narzędzia netstat do monitorowania aktywności sieciowej w systemie.

netstat -tuln

⏰ Automatyzacja zadań

Zadanie: Uruchom zadanie cyklicznie co godzinę

Utwórz zadanie w cron, które będzie uruchamiane co godzinę i zapisze wynik uptime do pliku logu.

crontab -e
        # Dodaj linię:
        0 * * * * uptime >> ~/logi/uptime.log

🔄 Aktualizacja systemu

Zadanie: Zaktualizuj system i zainstaluj nowe pakiety

Zaktualizuj system oraz zainstaluj pakiety curl i git.

sudo apt update
        sudo apt upgrade
        sudo apt install curl git