Linux serwer – przygotowanie do egzaminu INF.02 [Ubuntu]

wojst.pl 2 tygodni temu
# 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, o ile 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ć dzięki 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, iż 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, iż 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. o ile zrobimy mkdir /home/user1/samochody_osobowe/audi otrzymamy błąd, iż 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 |
——————————————————————–
| wykonanie | 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, iż 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>
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”
# 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”
Idź do oryginalnego materiału