-
Tóth Miklós Tibor authoredTóth Miklós Tibor authored
Gyakorlat
0. csatlakozás a VM-hez
Ha gondoljátok vagy ha valaki nem nézett videót/jegyzetet és nem érti mi van, akkor akár itt érdemes shellt mutogatni.
1. saját user létrehozása root jogokkal
Mindenki választ magának usert (nem kell schacc legyen), aztán
sudo useradd -m bela
-m
= legyen home mappa
ha megadják a -G sudo
kapcsolót is, akkor nice, már van is sudo joguk,
a kövi rész skippelhető
legyen jelszó:
passwd bela
legyen sudo:
sudo usermod -aG sudo bela
ezzel lett sudo joga
Alternatív
legyen user:
sudo adduser bela
legyen sudo:
sudo adduser bela sudo
a végén jelentkezzetek át az új userbe
2. shell játszadozás
Feladat: számoljuk meg, hogy a Bee Movie szövegében hányszor szerepel a
kis és nagybetűs "bee" szó.
Ha lehet oldják meg maguktól, de vezethetitek is.
A szöveg elérhető itt: https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt
Vezessük végig őket lépésenként, hogy mit csinál a csomó parancs:
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt
-> letölti a szöveget és kiírja
olvassunk be less-sel
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt | less
Na de oldjuk is meg a feladatot:
Okés, de:
számolni a wc
-vel lehet, de kéne szűrni a bee-kre, arra kell a grep
,
de:
a grep
az egész sort odaadja, amiben egyszer is ott a bee
tehát szét kéne szedni úgy, hogy minden szó külön sor legyen
Megoldás: cseréljük ki a space-eket \n
-re a tr
használatával.
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt | tr " " "\n"
Az idézőjelek fontosak.
Most már soronként jelenik meg, mehet a grep.
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt | tr " " "\n" | grep -i bee
Na most van egy csomó bee-nk, mehet a wc.
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt | tr " " "\n" | grep -i bee | wc -l
Elvileg 171-et kéne kapni.
Ha zavar minket a curl letöltés mutató szövege, akkor adjunk neki egy 2>/dev/null
-t.
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt 2>/dev/null | tr " " "\n" | grep -i bee | wc -l
2 = stderr, /dev/null = speciális file, amibe bármit írhatunk, elveszik
Feladat: A méhek száma évről évre csökken, let's save the bees! Írjuk bele a "bee"-ket egy fileba!
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt | tr " " "\n" | grep -i bee > save_the_bees.txt
nano save_the_bees.txt
-vel megleshetjük, hogy működött.
3. Script irogatás
Feladat: csináljunk egy scriptet, ami megmenti a méheket, és egy tehénnel kimondatja, hogy hányan vannak.
A cowsay
nincs fent a VM-eken, telepítsétek.
sudo apt install cowsay
Nyugodtan próbálgassátok ki.
cowsay hello
echo hello | cowsay
Csináljunk nano-val (vagy vim-mel, ha valaki azt szereti inkább)
egy új file-t, nevezzük el bees.sh
-nak.
nano bees.sh
Vezessétek végig őket a megírásán vagy csináltassátok meg velük, itt egy mintamegoldás:
#!/bin/bash
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt | tr " " "\n" | grep -i bee > save_the_bees.txt
echo $(cat save_the_bees.txt | wc -l ) méh van. | cowsay
A felső sor opcionális.
Ha megvan, futtassátok:
bash bees.sh
vagy, ha odatettétek az elejére a shebang-et:
chmod +x bees.sh
./bees.sh
4. Webszerver telepítése
Feladat: állítsanak be egy webszervert nginx-el, és rakjanak ki valami szöveget.
Telepítés:
sudo apt install nginx
Magától elindul, nézzük meg:
systemctl status nginx
Alapból a /var/www/html
-t szolgálja ki, menjünk oda
cd /var/www/html
ls -la
Látjuk, hogy root-é minden, adjuk oda a www-data-nak, magunknak meg adjunk www-data csoporttagságot és adjunk a csoportnak minden jogot rekurzívan.
sudo chown -R www-data:www-data /var/www/html
sudo usermod -aG www-data bela
sudo chmod -R g+rwx /var/www/html
-R
: rekurzívan
vegyük fel a csoporttagságot, ehhez vagy ki és bejelentkezni kell vagy:
newgrp www-data
Most töröljük a korábbi weblapot és tegyünk ki valami sajátot:
cd /var/www/html
rm index.nginx-debian.html
nano index.html # írjanak bele bármi funky szöveget
5. Csináljunk tűzfalat
Az UFW (Uncomplicated FireWall) egy egyszerű tűzfalvezérlő progi. Nézzük meg fut-e:
sudo systemctl status ufw
sudo ufw status
Fut, de ki van kapcsolva.
Előszöris engedjük be az SSH-t és http-t, hogy ne zárjuk ki magunkat:
sudo ufw limit ssh
sudo ufw allow http
A limit-tel limitálva engedélyeztük az ssh-t, így nem lehet gyorsan brute-force-olni.
és kapcsoljuk be:
sudo ufw enable
sudo ufw status
nice.
Extra feladatötlet turbóújoncoknak
Csináljanak valami fancy weboldalt. Bármit.