1. Postawienie zadania
Więc mamy przed sobą intensywną praktyczną pracę, w której będziecie mogli zastosować całą wiedzę z poprzednich wykładów. Będziemy tworzyć użytkowników, łączyć ich w grupy, nadawać unikalne uprawnienia dostępu i zarządzać procesami w systemie. I jeśli myślisz: "No i po co mi to wszystko?", wyobraź sobie, że jesteś administratorem systemu albo DevOps-inżynierem, i musisz skonfigurować serwer dla współpracy zespołu. Albo po prostu uratować swój komputer przed chaosem! W prawdziwym świecie takie sytuacje zdarzają się całkiem często.
Twój cel — skonfigurować system dla następujących użytkowników i procesów:
- Utworzyć dwóch użytkowników:
user1iuser2. Będą oni wspólnie pracować w grupiedevelopers. - Skonfigurować plik (na przykład
project.txt) w taki sposób, żeby tylko członkowie grupydevelopersmogli go edytować. - Utworzyć kilka procesów (na przykład za pomocą polecenia
sleep) i nauczyć się je kończyć w razie potrzeby. - Przejrzeć aktywne procesy, żeby określić, które z nich zużywają najwięcej zasobów.
Brzmi jak plan? Zrealizujmy go krok po kroku.
2. Krok 1: Tworzenie użytkowników
1. Tworzymy użytkowników
Na początek stworzymy dwóch użytkowników:
sudo adduser user1
sudo adduser user2
Przy wykonywaniu tych poleceń system poprosi Cię o ustawienie hasła i opisanie każdego użytkownika. Nie musimy tutaj wypełniać dodatkowych danych, można po prostu nacisnąć Enter.
Każdemu użytkownikowi automatycznie tworzony jest katalog domowy w /home. Możesz to sprawdzić:
ls /home
Jeśli pracujesz lokalnie, nie zapomnij użyć sudo, żeby uzyskać uprawnienia administratora. A jeśli jesteś w WSL, bądź gotowy, że mogą być tam pewne niuanse z użytkownikami. Na przykład w WSL domyślny użytkownik jest już administratorem systemu.
3. Krok 2: Tworzenie grupy i dodawanie użytkowników
1. Tworzymy grupę
Aby użytkownicy mogli wspólnie pracować nad projektami, dodamy ich do grupy. Najpierw utwórzmy grupę developers:
sudo groupadd developers
2. Dodajemy użytkowników do grupy
Teraz dodamy użytkowników user1 i user2 do grupy developers. Użyjemy komendy usermod do tego zadania:
sudo usermod -aG developers user1
sudo usermod -aG developers user2
3. Sprawdzamy członkostwo w grupie
Aby upewnić się, że użytkownicy zostali poprawnie dodani do grupy, wykonaj:
groups user1
groups user2
Powinieneś zobaczyć, że user1 i user2 są członkami grupy developers.
4. Krok 3: Praca z plikami i uprawnieniami dostępu
1. Tworzymy plik dla projektu
Stwórzmy plik project.txt w katalogu domowym jednego z użytkowników (na przykład user1):
sudo -u user1 touch /home/user1/project.txt
Komenda sudo -u pozwala nam wykonywać działania w imieniu innego użytkownika.
2. Zmieniamy właściciela i grupę pliku
Przypiszmy właściciela user1, a grupę — developers, aby obaj użytkownicy mieli taki sam dostęp:
sudo chown user1:developers /home/user1/project.txt
3. Konfigurujemy uprawnienia dostępu
Teraz zmienimy uprawnienia dostępu do pliku. Użyjemy komendy chmod:
sudo chmod 660 /home/user1/project.txt
Co zrobiliśmy? Nadaliśmy właścicielowi user1 i grupie developers prawa do odczytu i zapisu rw-, a wszyscy inni użytkownicy nie mają żadnego dostępu.
Możesz sprawdzić uprawnienia dostępu za pomocą komendy ls:
ls -l /home/user1/project.txt
Oczekiwany wynik:
-rw-rw---- 1 user1 developers 0 data czas /home/user1/project.txt
5. Krok 4: Uruchamianie procesów
1. Uruchamiamy procesy
Dla eksperymentu stworzymy kilka "długowiecznych" procesów za pomocą komendy sleep:
sleep 300 &
sleep 400 &
sleep 500 &
Każda komenda sleep jest uruchamiana w tle dzięki symbolowi &.
Aby sprawdzić listę procesów, użyj komendy ps:
ps
Więcej informacji można zobaczyć za pomocą ps aux:
ps aux | grep sleep
6. Krok 5: Zakończenie procesów
1. Zakończenie procesu po PID
Określamy PID jednego z procesów (na przykład, sleep) i kończymy go:
kill PID
Gdzie PID — identyfikator procesu, który można znaleźć za pomocą ps.
2. Zakończenie procesu po nazwie
Jeśli chcesz zakończyć wszystkie procesy sleep, użyj komendy killall:
killall sleep
3. Korzystanie z pkill
Jeśli nie pamiętasz dokładnej nazwy procesu, pkill pomoże zakończyć proces poprzez częściowe dopasowanie nazwy:
pkill slee
7. Krok 6: Monitorowanie procesów
Aby śledzić obciążenie systemu, używaj:
top— do pracy w czasie rzeczywistym:topTutaj możesz obserwować obciążenie procesora, pamięci i aktywne procesy. Użyj kombinacji klawiszy
k, aby zakończyć proces bezpośrednio z interfejsu.htop— bardziej wygodny interfejs (jeśli masz go zainstalowanego):
Aby wyjść, naciśnijhtopF10.
8. Lista kontrolna
Po wykonaniu wszystkich kroków powinieneś upewnić się, że:
- Utworzono dwóch użytkowników
user1iuser2. - Utworzono i skonfigurowano grupę
developers, do której dodano obu użytkowników. - Utworzono plik
project.txt, dostępny tylko dla grupydevelopers. - Utworzono i zakończono kilka procesów za pomocą poleceń
kill,killallipkill. - Udało Ci się sprawdzić listę procesów za pomocą
ps,toplubhtop.
Jeśli wszystko zostało wykonane — gratulacje! Przeszedłeś przez wszystkie podstawowe etapy zarządzania użytkownikami, grupami, prawami dostępu i procesami w systemie Linux. Niech moc konsoli będzie z Tobą!
GO TO FULL VERSION