diff --git a/feladat.md b/feladat.md new file mode 100644 index 0000000000000000000000000000000000000000..e6e6fa7a17ce87913bae641ab1b560163a2dd63e --- /dev/null +++ b/feladat.md @@ -0,0 +1,221 @@ +# Gyakorlat + +## 0. csatlakozás a VM-hez + +[see here](saját vm.md) + +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 +```shell +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ó: +```shell +passwd bela +``` + +legyen sudo: +```shell +sudo usermod -aG sudo bela +``` +ezzel lett sudo joga + +### Alternatív + +legyen user: +```shell +sudo adduser bela +``` + +legyen sudo: +```shell +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: + +```shell +curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt +``` +-> letölti a szöveget és kiírja + +olvassunk be less-sel +```shell +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. + +```shell +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. +```shell +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. + +```shell +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. + +```shell +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! + +```shell +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. +```shell +sudo apt install cowsay +``` +Nyugodtan próbálgassátok ki. +```shell +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. + +```shell +nano bees.sh +``` + +Vezessétek végig őket a megírásán vagy csináltassátok meg velük, itt egy mintamegoldás: +```shell +#!/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: +```shell +bash bees.sh +``` +vagy, ha odatettétek az elejére a shebang-et: +```shell +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: +```shell +sudo apt install nginx +``` + +Magától elindul, nézzük meg: +```shell +systemctl status nginx +``` + +Alapból a `/var/www/html`-t szolgálja ki, menjünk oda +```shell +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. +```shell +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: +```shell +newgrp www-data +``` + +Most töröljük a korábbi weblapot és tegyünk ki valami sajátot: +```shell +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: +```shell +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: +```shell +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: +```shell +sudo ufw enable +sudo ufw status +``` +nice. + +## Extra feladatötlet turbóújoncoknak + +Csináljanak valami fancy weboldalt. Bármit. + +