Skip to content
Snippets Groups Projects
Verified Commit d2b2db2c authored by Tóth Miklós Tibor's avatar Tóth Miklós Tibor :shrug:
Browse files

fixes

parent 17b4d3c6
No related branches found
No related tags found
No related merge requests found
Pipeline #6927 passed
# 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.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment