Skip to content
Snippets Groups Projects
feladat.md 5.04 KiB
Newer Older
Tóth Miklós Tibor's avatar
Tóth Miklós Tibor committed
# Gyakorlat

## 0. csatlakozás a VM-hez

Tóth Miklós Tibor's avatar
Tóth Miklós Tibor committed
[see here](saját%20vm.md)
Tóth Miklós Tibor's avatar
Tóth Miklós Tibor committed

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.