Podstawy zarządzania
Wprowadzenie do zarządzania serwerem z systemem Linux.
Łączenie z Serwerem przez SSH
SSH (Secure Shell) to protokół, który umożliwia bezpieczne, zdalne logowanie i zarządzanie serwerem.
Informacje, których potrzebujesz
- Adres IP serwera:
93.95.119.x(zastąp go adresem swojego serwera) - Nazwa użytkownika: Zazwyczaj
rootlub użytkownik, którego podałeś przy zakupie serwera. - Hasło: Hasło do użytkownika.
Najpopularniejszym klientem SSH dla systemu Windows jest PuTTY. Możesz go pobrać tutaj.
- Uruchom PuTTY.
- W polu
Host Name (or IP address)wpisz adres IP swojego serwera. - Port powinien być ustawiony na
22. - Kliknij
Open. - W nowym oknie zostaniesz poproszony o login, a następnie o hasło.
Alternatywnie, nowoczesne wersje Windows 10 i 11 mają wbudowanego klienta OpenSSH. Możesz go użyć w PowerShell lub CMD:
ssh nazwa_uzytkownika@adres_ip_serweraOtwórz terminal i wpisz poniższą komendę:
ssh nazwa_uzytkownika@adres_ip_serweraPrzy pierwszym połączeniu zostaniesz zapytany, czy chcesz dodać hosta do listy znanych hostów. Wpisz yes i naciśnij Enter. Następnie podaj hasło.
Aktualizacja Systemu
Regularne aktualizacje są kluczowe dla bezpieczeństwa i stabilności Twojego serwera.
Do zarządzania pakietami używa się narzędzia apt.
# Aktualizuje listę dostępnych pakietów
sudo apt update
# Aktualizuje zainstalowane pakiety do najnowszych wersji
sudo apt upgrade -yW dystrybucjach opartych na Red Hat (takich jak Fedora, CentOS, Rocky Linux) używa się dnf (w starszych wersjach yum).
# Aktualizuje wszystkie pakiety
sudo dnf update -yPodstawowe Komendy do nawigowania się po Systemie.
Poniżej znajdziesz te same komendy, co wcześniej, ale tym razem z praktycznymi przykładami, które pokażą Ci, jak ich używać w codziennych zadaniach.
MAN - Pełna Dokumentacja Systemu
Komenda man (manual) pozwala na dostęp do pełnej dokumentacji systemu Linux. Jest to jedno z najważniejszych narzędzi dla każdego administratora i użytkownika Linuksa. Dzięki niej możesz dowiedzieć się, jak działa każda komenda, jakie ma opcje i jak jej używać.
Aby użyć man, wpisz w terminalu:
man [nazwa_komendy]Przykład:
man lsPrzydatne wskazówki
- Możesz przeszukiwać manual, naciskając
/i wpisując szukane słowo, a następnie naciskającEnter.
Otworzy się strona manuala dla komendy ls, gdzie znajdziesz szczegółowe informacje o jej działaniu, opcjach i przykładach użycia. Aby wyjść z manuala, naciśnij q.
Nawigacja i Zarządzanie Plikami
Wyobraźmy sobie, że chcesz stworzyć katalog na swoją nową stronę internetową, umieścić w nim plik, a następnie go przenieść.
Sprawdź, gdzie jesteś i co się tam znajduje
# Wyświetl bieżący katalog
pwd
# Wynik: /home/nazwa_uzytkownika
ls-laPrzykład wyniku ls -la
-rw-r--r-- 1 admin admin 1234 Mar 23 15:01 config.txt
drwxr-xr-x 2 admin admin 4096 Mar 23 15:02 public_html/Rozszyfrowanie wyniku:
drwxr-xr-x: Uprawnienia. Pierwszy znak to typ (-dla pliku,ddla katalogu). Kolejne 9 znaków to uprawnienia w kolejności dla: właściciela, grupy i innych.1lub2: Liczba dowiązań twardych.admin: Właściciel pliku.admin: Grupa, do której należy plik.1234: Rozmiar pliku w bajtach.Mar 23 15:01: Data ostatniej modyfikacji.config.txt: Nazwa pliku lub katalogu.
Stwórz katalog i pliki
# Stwórz katalog na projekt
mkdir moja_strona
# Wejdź do nowego katalogu
cd moja_strona
# Stwórz pusty plik HTML
touch index.htmlKopiowanie i przenoszenie
# Skopiuj plik index.html jako contact.html
cp index.html contact.html
# Zmień nazwę pliku contact.html na kontakt.html
mv contact.html kontakt.html
# Przenieś plik kontakt.html do katalogu nadrzędnego
mv kontakt.html ../
# Wyświetl zawartość folderu, aby zobaczyć zmiany
lsUsuwanie plików i katalogów
Ostrożnie!
Komenda rm usuwa pliki i katalogi trwale. Nie ma tu kosza na śmieci. Używaj jej z rozwagą.
# Usuń plik kontakt.html
rm kontakt.html
# Usuń plik chroniony przed zapisem bez pytania o potwierdzenie
rm -f plik_chroniony.txt
# Wróć do katalogu nadrzędnego
cd ..
# Usuń katalog moja_strona wraz z całą zawartością
rm -r moja_stronaWyświetlanie Zawartości Plików
Załóżmy, że chcesz sprawdzić logi serwera Nginx, aby zdiagnozować problem.
cat /var/log/nginx/access.log- Wyświetli cały plik logu na ekranie. Jeśli plik jest duży, zaleje Ci terminal.less /var/log/nginx/error.log- Otworzy plik wless, gdzie możesz przewijać go strzałkami. Naciśnijq, aby wyjść.tail /var/log/nginx/access.log- Pokaże ostatnie 10 linii logu, co jest przydatne do szybkiego sprawdzenia najnowszych wpisów.tail -f /var/log/nginx/access.log- To jedno z najważniejszych narzędzi diagnostycznych. Będzie na żywo wyświetlać nowe linie dodawane do pliku. Idealne do obserwowania, co się dzieje na serwerze w czasie rzeczywistym. NaciśnijCtrl+C, aby zakończyć.
Zarządzanie Procesami
Wyobraź sobie, że jeden z procesów zużywa 100% CPU i musisz go zatrzymać.
-
Uruchom
htop(lubtop), aby zobaczyć listę procesów posortowaną według użycia zasobów. -
Znajdź proces, który sprawia problemy i zanotuj jego
PID(Process ID). -
Naciśnij
q, aby wyjść zhtop. -
Użyj komendy
kill, aby go zatrzymać:# Zatrzymuje proces w łagodny sposób kill 1234 # Gdzie 1234 to PID procesu # Jeśli to nie zadziała, użyj "twardego" zatrzymania kill -9 1234Możesz także użyć komendy
killall, aby zatrzymać wszystkie procesy o danej nazwie, co jest przydatne, gdy aplikacja uruchomiła wiele procesów.# Zatrzymuje wszystkie procesy o nazwie "node" sudo killall node
Zarządzanie Użytkownikami
Zawsze dobrą praktyką jest stworzenie nowego użytkownika z uprawnieniami sudo zamiast pracy na koncie root.
# Stwórz nowego użytkownika o nazwie "admin" (na Debian/Ubuntu)
sudo adduser admin
# Dodaj użytkownika "admin" do grupy sudo, aby mógł wykonywać komendy z podniesionymi uprawnieniami
sudo usermod -aG sudo admin
# Teraz możesz się przelogować na nowe konto
su adminDla systemów Fedora/Rocky, proces jest podobny, ale używa się grupy wheel:
sudo useradd admin
sudo passwd admin
sudo usermod -aG wheel adminZmiana hasła użytkownika
Komenda passwd pozwala na zmianę hasła użytkownika. Możesz zmienić swoje hasło lub hasło innego użytkownika (jako administrator).
# Zmień swoje hasło
passwd
# Zmień hasło dla użytkownika "admin" (wymaga uprawnień sudo)
sudo passwd adminPrzydatne wskazówki
- Po zmianie hasła użytkownik będzie musiał używać nowego hasła przy logowaniu.
- Jeśli chcesz wymusić zmianę hasła przy następnym logowaniu, użyj:
sudo passwd -e admin
Edycja Plików w Terminalu
Prędzej czy później będziesz musiał edytować plik konfiguracyjny. Najprostszym edytorem dla początkujących jest nano.
Załóżmy, że chcesz edytować plik server.cfg w katalogu /home/admin/fivem.
nano /home/admin/fivem/server.cfgOtworzy się edytor nano. Na dole ekranu zobaczysz listę skrótów klawiszowych:
Ctrl + O- Zapisz zmiany (Write Out).Ctrl + X- Wyjdź z edytora.
Istnieje także Vim (oraz pochodne neovim), ale jest to znacznie potężniejszy i trudniejszy w obsłudze edytor.
Monitorowanie Zasobów Systemowych
Sprawdzanie wolnego miejsca na dysku i dostępnej pamięci RAM to podstawowe zadania administracyjne.
df -h- Pokazuje użycie dysku dla wszystkich zamontowanych partycji w czytelnym formacie (megabajty, gigabajty).free -h- Wyświetla ilość używanej i wolnej pamięci RAM oraz przestrzeni wymiany (swap).du -sh *- Bardzo przydatna komenda do sprawdzenia, które katalogi w bieżącej lokalizacji zajmują najwięcej miejsca.
Zarządzanie Usługami (systemd)
Większość nowoczesnych dystrybucji Linuksa używa systemd do zarządzania usługami (demonami), takimi jak serwer WWW, baza danych czy zapora sieciowa.
Załóżmy, że zainstalowałeś serwer WWW Nginx.
sudo systemctl status nginx- Sprawdza, czy usługa Nginx jest aktywna.sudo systemctl start nginx- Uruchamia usługę.sudo systemctl stop nginx- Zatrzymuje usługę.sudo systemctl restart nginx- Ponownie uruchamia usługę (np. po zmianie konfiguracji).sudo systemctl enable (--now) nginx- Sprawia, że usługa będzie automatycznie uruchamiana przy starcie serwera. Dodanie--nowuruchamia usługę od razu.sudo systemctl disable nginx- Wyłącza automatyczne uruchamianie.
Podstawy Uprawnień Plików
Każdy plik i katalog w Linuksie ma przypisane uprawnienia dla trzech kategorii użytkowników:
- Właściciel (user)
- Grupa (group)
- Inni (others)
Uprawnienia to: r (odczyt), w (zapis), x (wykonanie).
chmod- Zmienia uprawnienia.chown- Zmienia właściciela i grupę.
Przykład
Masz skrypt start.sh, który musisz uczynić wykonywalnym.
# Dodaj uprawnienie do wykonania (+x) dla właściciela pliku
chmod u+x start.sh
# Teraz możesz go uruchomić
./start.shZmiana właściciela pliku:
# Zmień właściciela pliku na użytkownika "admin" i grupę "admin"
sudo chown admin:admin start.shKalkulator Uprawnień chmod
Uprawnienia można również ustawiać za pomocą liczb (notacja ósemkowa), co jest szybsze i bardzo popularne. Każde uprawnienie ma swoją wartość:
r(odczyt) = 4w(zapis) = 2x(wykonanie) = 1
Aby ustawić uprawnienia dla jednej grupy (np. właściciela), sumujesz wartości.
| Uprawnienia | Wartość | Opis |
|---|---|---|
--- | 0 | Brak uprawnień |
--x | 1 | Tylko wykonanie |
-w- | 2 | Tylko zapis |
-wx | 3 | Zapis i wykonanie |
r-- | 4 | Tylko odczyt |
r-x | 5 | Odczyt i wykonanie |
rw- | 6 | Odczyt i zapis |
rwx | 7 | Pełne uprawnienia (odczyt, zapis, wykonanie) |
Komenda chmod przyjmuje trzycyfrową liczbę: pierwsza dla właściciela, druga dla grupy, trzecia dla innych.
Praktyczne przykłady
chmod 755 plik.sh- Najczęstsze uprawnienia dla skryptów i katalogów publicznych.- Właściciel: 7 (rwx) - Pełne uprawnienia.
- Grupa: 5 (r-x) - Odczyt i wykonanie.
- Inni: 5 (r-x) - Odczyt i wykonanie.
chmod 644 config.php- Typowe uprawnienia dla plików webowych.- Właściciel: 6 (rw-) - Odczyt i zapis.
- Grupa: 4 (r--) - Tylko odczyt.
- Inni: 4 (r--) - Tylko odczyt.
chmod 700 private_key- Uprawnienia dla kluczy prywatnych.- Właściciel: 7 (rwx) - Pełne uprawnienia.
- Grupa: 0 (---) - Brak uprawnień.
- Inni: 0 (---) - Brak uprawnień.
Zarządzanie Systemową Zaporą Sieciową (Firewall)
ufw (Uncomplicated Firewall) to proste w obsłudze narzędzie do zarządzania firewallem.
# Włącz ufw
sudo ufw enable
# Zezwól na ruch SSH (bardzo ważne!)
sudo ufw allow ssh
# Zezwól na ruch HTTP i HTTPS
sudo ufw allow http
sudo ufw allow https
sudo ufw allow 8080/tcp
# Sprawdź status
sudo ufw statusfirewalld to domyślne narzędzie do zarządzania zaporą w tych systemach.
# Uruchom i włącz firewalld przy starcie systemu
sudo systemctl start firewalld
sudo systemctl enable firewalld
# Zezwól na ruch SSH, HTTP i HTTPS (trwale)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-port=8080/tcp
# Przeładuj konfigurację, aby zastosować zmiany
sudo firewall-cmd --reload
# Sprawdź aktywne reguły
sudo firewall-cmd --list-all