Linux serwer – przygotowanie do egzaminu INF.02 [Ubuntu]
# POMOC
man 
–help
 
man ls
man adduser
adduser –help
 
!! tabulator – autouzupełnienie komendy
np.: addu + [TAB] = adduser
 
 
# Struktura katalogów
/ – główny katalog (odpowiednik Dysk C:)
/home – podkatalog zawierający katalogi domowe użytkowników (C:\Users)
    /home/user1 = C:\Users\user1
/etc – podkatalog zawierający pliki konfiguracyjne usług
    /etc/apache2 – pliki konfiguracyjne serwera WWW – Apache2
    /etc/dhcpd – pliki konfiguracyjne serwera DHCP – isc-dhcp-server
    /etc/ssh – pliki konfiguracyjne serwera SSH
    
 
# Podstawowe komendy
cd – zmień katalog (change directory)
     – /
     – /var/log
     – . (bieżący katalog)
     – .. (katalog poziom wyżej)
     – ~ (katalog domowy)
pwd – wyświetl aktualny katalog (print working directory)
 
ls – wylistowanie plików w katalogu (list)
     – l (w formie listy)
     – la (pokaż pliki ukryte – zaczynające się od .)
     – lA (pokaż pliki ukryte, ale ukryj bieżący katalog . i katalog poziom wyżej ..)
     – lR (pokaż listę rekursywnie – wyświetl zawartość wszystkich katalogów wewnątrz)
 
cat – wyświetl zawartość pliku
 
grep (wyraz) (plik) – wyszukaj wyraz w podanym pliku
 
cat plik | grep wyraz – wyszukaj wyraz w potoku, w którym znajduje się zawartość pliku 
    
 
# Diagnostyka podzespołów – wyświetlenie informacji o podzespołach
! narzędzie lshw (list hardware)
 
– system operacyjny – /etc/os-release
    cat /etc/os-release
        NAME – nazwa dystrybucji
        VERSION – wersja systemu
– CPU 
    lshw -class processor
        product – nazwa @taktowanie
        cores – liczba rdzeni
– dysk twardy
    lshw -class disk
        size – pojemność
        serial – numer seryjny
– pamięć
    lshw -class memory
        bank – moduł pamięci
        size – rozmiar
        clock – taktowanie
– płyta główna
    lshw -class system
        product – model płyty głownej
        serial – numer seryjny płyty
        
 
# Diagnostyka dysku twardego – smartctl
smartctl -a /dev/sda
! /dev/sda – pierwszy dysk w komputerze, jeżeli będą kolejne wówczas będą się nazywały /dev/sdb, /dev/sdc itd
można to zweryfikować z wykorzystaniem lshw -class disk omówionego powyżej
 
ATTRIBUTE_NAME – nazwa atrybutu
RAW_VALUE – wartość RAW
 
 
# Zarządzenie użytkownikami i grupami systemowymi
/etc/passwd – lista wszystkich użytkowników z informacjami o nich
/etc/group – lista wszystkich grup w systemie
 
– Tworzenie użytkowników
adduser – interaktywne dodawanie użytkowników, pyta o najważniejsze rzeczy
useradd – nieinteraktywne dodawanie; nie zada żadnego pytania, ale możemy zdefiniować za pomocą przełączników zadane wartości
 
adduser test1
    następnie wpisujemy hasło dla użytkownika
    informacje o pełnej nazwie itd można pominąć klikając enter
    na końcu potwierdzamy, że informacje są poprawne
    
useradd przełączniki nazwa_użytkownika
    przydatne przełączniki (można sprawdzić w pomocy: man useradd):
        -d – katalog domowy użytkownika (-d /home/nazwa_katalogu_domowego)
        -e – data, po której konto zostanie wyłączone (-e rrrr-mm-dd)
        -p – hasło użytkownika (-p 'haslo_usera’), należy zwrócić uwagę, aby hasło podać w ”
        -s – powłoka (-s /bin/bash)
        -u – ID użytkownika (-u 1234)
    przykład użycia komendy:
        useradd -d /home/user22 -e 2025-02-28 -p 'ZAQ!2wsx’ -s /bin/bash -u 1234 uzytkownik1
        
– Tworzenie grupy
addgroup nazwa_grupy
 
– Dodawanie użytkownika do grupy
usermod -aG nazwa_grupy nazwa_usera 
usermod -aG grupa1 user1
        
– Zmiana hasła użytkownika
passwd nazwa_usera
 
– Zarządzanie hasłem
chage (narzędzie do zarządzania hasłem)
     -l user (wyświetl informacje o haśle usera)
     -d 0 (wymuś zmianę hasła)
     -M x (jak długo ma być ważne hasło)
 
 
# Zarządzanie katalogami
katalog domowy:
    /home/nazwa_użytkownika = ~ (tylda)
    /root (katalog domowy użytkownika root)
    
– Tworzenie katalogów – mkdir (make directory)
mkdir katalog
mkdir katalog1 katalog2 – utworzenie dwóch katalogów obok siebie
 
* Utworzenia drzewa katalogów
Załóżmy, że mamy pusty katalog domowy użytkownika /home/user1. Chcemy wewnątrz niego utworzyć katalogi samochody_osobowe i samochody_ciezarowe. Wewnątrz katalogu samochodu_osobowe chcemy utworzyć katalogi audi,bmw. Jeżeli zrobimy mkdir /home/user1/samochody_osobowe/audi otrzymamy błąd, że nie nie istnieje katalog samochody_osobowe, wewnątrz którego chcemy utworzyć katalog audi. Musimy do tego wykorzystać przełącznik -p. Utworzy on wszystkie katalogi po drodze, które brakują – w tym przypadku katalog samochody_osobowe i następnie wewnątrz niego katalog audi.
 
mkdir -p /home/user1/samochody_osobowe/audi
mkdir -p /home/user1/samochody_osobowe/audi /home/user1/samochody_osobowe/bmw
 
albo:
cd /home/user1
mkdir -p samochody_osobowe/audi samochody_osobowe/bmw
 
– Kasowanie plików/katalogów – rm (remove)
rm nazwa_pliku
rm -r nazwa_katalogu
 
 
# Zmiana właściciela pliku/katalogu – chown
Do sprawdzenia właściciela pliku/katalogu wykorzystujemy ls -l
 
zmiana użytkownika właściciela:
    chown użytkownik nazwa_katalogu
    chown user1 /home/user1/samochody_osobowe
zmiana grupy właściciela:
    chown :grupa nazwa_katalogu
    chown :grupa1 /home/user1/samochody_osobowe/audi
zmiana użytkownika i grupy właściela
    chown użytkownik:grupa nazwa_katalogu
    chown user1:grupa1 /home/user1/samochody_osobowe/bmw
    
 
# Zarządzanie uprawnieniami plików/katalogów
Wylistowanie uprawnień:
    ls -l
 
Opis uprawnień 
rwx r-x r-x
plik/katalog – uprawnienia dla właściciela (u) – uprawnienia dla grupy (g) – uprawnienia dla pozostałych (o)
właściciel(u-ser) grupa(g-roup) pozostali(o-ther) + –
wszyscy (a-ll) 
 
prawo dostępu – wartość literowa – wartość liczbowa
odczyt – r – 4
zapis – w -2
wykonaniex – x – 1
 
– Zmiana uprawnień 
chmod uprawnienia nazwa_pliku
 
* Z wykorzystaniem notacji liczbowej
chmod 641 nazwa_pliku
 
* Z wykorzystaniem notacji literowej
    + (nadaj uprawnienia)
    – (zabierz uprawnienia)
 
chmod u+rx plik (nadaj właścicielowi możliwość czytania i wykonywania)
chmod g+w plik (nadaj grupie możliwość zapisu)
chmod o+r plik (nadaj pozostałym możliwość czytania)
chmod a+w (nadaj wszystkim możliwość zapisu)
 
chmod u-r plik (zabierz właścicielowi możliwość czytania)
chmod g-w plik (zabierz grupie możliwość zapisu)
chmod o-r plik (zabierz pozostałym możliwość czytania)
chmod a-r plik (zabierz wszystkim możliwość czytania)
 
 
# Linki symboliczne, odpowiednik Windowsowych skrótów
ln -s źródło cel
ln -s /etc skrot_do_etc
    po wykonaniu komendy ls -l powinniśmy zauważyć skrot_do_etc -> /etc (skrót wskazuje na miejsce źródłowe)
    
 
# Aliasy komend
Aliasy znajdują się w pliku ~/.bashrc (kropka przed nazwą pliku oznacza plik ukryty). Tworzymy tym samym własny alias dla komendy systemowej.
Składnia wygląda następująco: 
    alias nazwa_komendy=’komenda systemowa’
    
Na przykład:
    alias lista=’ls -l’
    Po wpisaniu komendy lista wykona się ls -l
    
 
# Zarządzanie oprogramowaniem (wstęp)
apt – narzędzie do zarządzania programami
 
apt update – zaktualizuj listę i wersje programów (zawsze wykonujemy to jako pierwsze przed instalacją)
apt search nazwa_programu – sprawdź czy dany pakiet znajduje się w repozytorium
    apt search nano
apt install nazwa_programu – zainstaluj dany program
    apt install nano
apt remove nazwa_programu – odinstaluj program
    apt remove nano
 
 
# Sieć
– Wyświetlenie aktualnej konfiguracji kart sieciowych
ip a (a – adres)
    enp0s3 – nazwa karty sieciowej
    state – status (włączona/wyłączona)
    link/ether – MAC adres
    inet – adres IP/maska
    
– Wyświetlenie tablicy routingu
ip r (r – routing)
    default via IP – adres IP routera
    
– Diagnostyka sieciowa – ping (tak samo jak w Windowsie)
ping IP
    ping 192.168.1.1
ping nazwa_domenowa
    ping wp.pl
    
 
# Edycja plików tekstowych
nano – edytor terminalowy
    nano nazwa_pliku
    Ctrl + O – zapisz zmiany
    Ctrl + X – wyjdź z nano
    
 
# Konfiguracja karty sieciowej – NETPLAN
– zapisane jako YAML (język IT przeznaczony do przedstawiania danych)
– język wrażliwy na składnie (wcięć nie robimy tabami tylko spacjami)
– pliki konfiguracyjne znajdziemy w lokalizacji /etc/netplan/*.yaml
– w jednym pliku możemy mieć konfigurację kilku NIC
 
localhost = 127.0.0.1
 
 
– Przykładowa konfiguracja (najczęstszym błędem są literówki oraz złe wcięcia, nierówne odstępy w sekcjach)
ethernets:
    ! Podajemy nazwę karty sieciowej, którą konfigurujemy – do znalezienia w ip a
     enp0s3:
    ! Wyłącz DHCP – adres nie zostanie pobrany z DHCP, tylko przypisany statycznie
        dhcp4: false
    ! Przypisz adres IP/maska
        addresses: [192.168.1.200/24]
    ! Ustawienia bramy domyślnej
        gateway4: 192.168.1.1
    ! Definiujemy sekcje serwerów DNS
        nameservers:
    ! Podajemy adresy IP serwerów DNS
           addresses: [8.8.8.8,1.1.1.1]
    ! Konfigurujemy drugą kartę sieciową
     enp0s8:
    ! Wyłączamy kartę sieciową – state DOWN
        activation-mode: off
    ! Konfiguracja trzeciej karty sieciowej
     enp0s9:
    ! Włącz DHCP – pobierze adresację IP dynamicznie
        dhcpd4: true
        
– Przetestowanie pliku netplan (sprawdzenie składni, czy nie ma literówki, czy nie ma problemu ze składnią – w przypadku problemów wskaże linię, gdzie jest błąd)
netplan try
 
– Wprowadzenie danej konfiguracji z pliku netplan
netplan apply
 
 
# Serwer SSH
Konfiguracja SSH znajduje się w katalogu /etc/ssh
Konfiguracja klienta: /etc/ssh/ssh_config
Konfiguracja serwera: /etc/ssh/sshd_config
 
Na egzaminie pojawiła się tylko konieczność wykonania kopii zapasowej konfiguracji serwera, więc:
cp /etc/ssh/sshd_config miejsce_docelowe_kopii
 
 
# Serwer DHCP – isc-dhcp-server
Pełna instrukcja konfiguracji serwera: https://wojst.pl/serwer-dhcp-w-oparciu-o-system-linux/
 
Konfiguracja serwera znajduje się w pliku /etc/dhcp/dhcpd.conf
 
– Zdefiniowanie podsieci, dla której będą rozgłaszane adresy IP
! Adres IP podsieci wraz z maską
subnet 192.168.1.0 netmask 255.255.255.0 {
! Zakres adresów przydzielanych
    range 192.168.1.100 192.168.1.150;
! Adres bramy domyślnej 
    option routers 192.168.1.1;
}
 
– Statyczne przypisanie adresu IP dla konkretnego hosta
! Definiujemy nazwę hosta – dowolna
host nazwa_hosta {
! Definiujemy MAC adres klienta
    hardware ethernet aa:bb:cc:dd:ee:ff;
! Określamy jaki adres IP powinien być przypisany dla tego adresu MAC
    fixed-address 192.168.1.17;
}
 
 
# Zarządzanie usługami
systemctl – narzędzie do zarzadzania usługami (system control)
    start – uruchom usługę
    stop – zatrzymaj usługę
    restart – uruchom ponownie usługę
    status – wyświetl status usługi (czy działa, czy wyświetla jakieś błedy)
    
systemctl stop ssh
systemctl start ssh
systemctl restart ssh
systemctl status ssh
 
 
# Serwer WWW – Apache2
Pełna instrukcja konfiguracji serwera: https://wojst.pl/serwer-www-w-oparciu-o-apache2/
 
Główny plik konfiguracyjny: /etc/apache2/apache2.conf
Plik konfiguracyjny domyślnego wirtualnego hosta: /etc/apache2/sites-enabled/000-default.conf
 
– Sprawdzenie, na jakim koncie działa Apache
W głównym pliku konfiguracyjnym /etc/apache2/apache2.conf szukamy USER oraz GROUP
Domyślnie zwraca takie wartości:
    User ${APACHE_RUN_USER}
    Group ${APACHE_RUN_GROUP}
Ale w komentarzu nad tym widzimy, że zdefiniowane jest to w pliku /etc/apache2/envars. Przeszukując więc ten plik możemy znaleźć:
    export APACHE_RUN_USER=www-data
    export APACHE_RUN_GROUP=www-data
 
Reasumując, Apache2 działa jako user www-data oraz grupa www-data.
 
– Zmiana portu, na jakim działa serwer
W pliku /etc/apache2/sites-enabled/000-default.conf musimy zmodyfikować
    <VirtualHost *:80>
i podać nowy port, np.: 8080
    <VirtualHost *:8080>
    
Dodatkowo należy w pliku /etc/apache2/ports.conf zmienić
     Listen 80
na
     Listen 8080
 
Po tym należy przeładować usługę: systemctl restart apache2
 
– Zmiana katalogu, z którego wyświetlana jest strona
W pliku /etc/apache2/sites-enabled/000-default.conf musimy zmodyfikować po <VirtualHost *:80>:
    DocumentRoot „/var/www/html”
i podać nową ścieżkę, czyli np.: /strona
    DocumentRoot „/strona”
   

Dodatkowo pod tym należy dopisać:
    <Directory /strona>
        Require all granted
    </Directory>

w miejsce /strona podajemy nasz katalog, w którym przechowujemy stronę

 
Reasumując, w przypadku serwera Apache na egzaminie interesują nas pliki:
– /etc/apache2/apache2.conf (sprawdzenia usera i grupy, na uprawnienia jakich działa serwer)
– /etc/apache2/ports.conf (zmiana portu)
– /etc/apache2/sites-enabled/000-default.conf (zmiana portu i wskazanie katalogu przechowującego stronę)
 
# Przykładowe zadanie z egzaminu dotyczące serwera Apache2
– Utwórz katalog /strona
    mkdir /strona
– Zmień właściciela i grupę tego katalogu na takiego, na jakim działa Apache
    chown www-data:www-data /strona
– Wewnątrz utworzonego katalogu utwórz plik index.html z odpowiednią treścią
    cd /strona
    nano index.html
        tutaj wpisujemy treść, którą podali
    chown www-data:www-data index.html
– Zmień prawa do katalogu i utworzonego pliku
    chmod podane_prawa /strona
        chmod 555 /strona
    chmod podane_prawa /strona/index.html
        chmod 444 /strona/index.html
– Zmiana katalogu, z którego wyświetlana jest strona
W pliku /etc/apache2/sites-enabled/000-default.conf musimy zmodyfikować po <VirtualHost *:80>:
    DocumentRoot „/var/www/html”
i podać nową ścieżkę, czyli np.: /strona
    DocumentRoot „/strona”

Dodatkowo pod tym należy dopisać:
    <Directory /strona>
        Require all granted
    </Directory>

w miejsce /strona podajemy nasz katalog, w którym przechowujemy stronę

 
# Sprawdzenie czy użytkownik może odbierać wiadomości tekstowe
Treść zadania: „sprawdź, czy użytkownik administrator może odbierać wiadomości tekstowe od innych użytkowników
 
Do tego służy polecenie mesg. Może zwrócić jedną z dwóch odpowiedzi:
is n (nie może odbierać)
is y (może odbierać)
 
Należy najpierw się przelogować na danego użytkownika. Można to zrobić za pomocą polecenia:
     su administrator (su – switch user; podajemy nazwę konta z zadania)
i następnie:
     mesg
w odpowiedzi zobaczymy:
     is n albo is y
W celu świadczenia usług na najwyższym poziomie stosujemy pliki cookies, które będą zamieszczane w Państwa urządzeniu (komputerze, laptopie, smartfonie). W każdym momencie mogą Państwo dokonać zmiany ustawień Państwa przeglądarki internetowej i wyłączyć opcję zapisu plików cookies. View more
Zaakceptuj