Skip to content
Snippets Groups Projects

Gyakorlat

0. csatlakozás a VM-hez

see here

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.