Linux előadás

Tóth Miklós

March 21, 2021

Pár egyéb hasznos parancs

wc

  • word counter
  • szavak, sorok számolása
[mike@thinkyboi ~]$ echo "egy két há" | wc -w
3
[mike@thinkyboi ~]$ echo "egy két há" | wc -l
1
[mike@thinkyboi ~]$ echo "egy
két
há" | wc -l
3

tr

  • karaktereket cserél ki vagy töröl
[mike@thinkyboi ~]$ echo "almafa" | tr "a" "e"
elmefe
[mike@thinkyboi ~]$ echo "almafa körtefa eperfa" | tr " " "\n"
almafa
körtefa
eperfa
[mike@thinkyboi ~]$ echo "almafa" | tr -d "a"
lmf

curl

  • http shellből
  • stdout-ra írja ki, kivéve, ha van -o kapcsoló
[mike@thinkyboi ~]$ curl https://home.sch.bme.hu/~mikewashere/linux/eloadas.md | grep stdout
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   777  100   777    0     0  33782      0 --:--:-- --:--:-- --:--:-- 33782
- stdout-ra írja ki
[mike@thinkyboi ~]$ curl https://home.sch.bme.hu/~mikewashere/linux/eloadas.md -o eloadas.md
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   777  100   777    0     0  31080      0 --:--:-- --:--:-- --:--:-- 31080
[mike@thinkyboi ~]$ 

.sh fileok

  • shell automatizálása
  • mintha soronként kiadnánk a parancsokat

egy .sh file

[mike@thinkyboi tmp]$ vi test.sh
[mike@thinkyboi tmp]$ cat test.sh 
echo "ez simán működik" | cowsay
curl "https://home.sch.bme.hu/~mikewashere/linux/eloadas.md" | grep "soronként" | cowsay

[mike@thinkyboi tmp]$ bash test.sh 
 _____________________ 
< ez simán működik >
 --------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1596  100  1596    0     0  69391      0 --:--:-- --:--:-- --:--:-- 69391
 _________________________________ 
/ - mintha soronként kiadnánk a \
\ parancsokat                     /
 --------------------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
[mike@thinkyboi tmp]$ 

shebang

  • file futtatásakor a kernel meglesi mi van az elején
  • el tudunk indítani scripteket programként
  • #!<program>

shebang

[mike@thinkyboi tmp]$ vi test.sh 
[mike@thinkyboi tmp]$ cat test.sh 
#!/bin/bash
echo "ez simán működik" | cowsay
curl "https://home.sch.bme.hu/~mikewashere/linux/eloadas.md" | grep "soronként" | cowsay

[mike@thinkyboi tmp]$ chmod +x test.sh 
[mike@thinkyboi tmp]$ ./test.sh 
 _____________________ 
< ez simán működik >
 --------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1596  100  1596    0     0  11319      0 --:--:-- --:--:-- --:--:-- 11319
 _________________________________ 
/ - mintha soronként kiadnánk a \
\ parancsokat                     /
 --------------------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
[mike@thinkyboi tmp]$ 

tűzfal

  • a kernel belsejében -> gyors, de low-level
  • iptables
  • kényelmesebb egy tűzfal-kezelő

UFW

  • uncomplicated firewall
  • egyszerű
[mike@thinkyboi tmp]$ sudo ufw allow 80
Rules updated
Rules updated (v6)
[mike@thinkyboi tmp]$ sudo ufw allow https
Rules updated
Rules updated (v6)
[mike@thinkyboi tmp]$ sudo ufw enable

SSH kulcsok

  • biztonságosabb, mint egy jelszó
  • sok algoritmus, RSA, elliptikus görbék
  • publikus-privát
  • privát saját gépen, védve
  • publikus ott, ahova belépnénk
  • ~/.ssh/authorized_keys

Generálás

mike@thinkyboi:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mike/.ssh/id_rsa): 
Created directory '/home/mike/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/mike/.ssh/id_rsa
Your public key has been saved in /home/mike/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:tYZX08XEZfJP5j/um2Y9KUgG+jffe82ONwgzkt4p0hc mike@thinkyboi
The key's randomart image is:
+---[RSA 3072]----+
|              .+*|
|             . =o|
|          . o . +|
|         + o . +.|
|        S *     o|
|       . = E    .|
|        + = B .o=|
|       . = B ooBO|
|        . + o.*XB|
+----[SHA256]-----+
mike@thinkyboi:~$ cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDjAZMAbpNutuc/ZgHWMcjWcPQOC0d8+JrDaHMnxZfRtfdyrgZDfPmMER95148JVEfkjjhur8a+IEfQM59o+yq95+yNvJFT6Nr5JzHK8dC5IuDvvEVNrKPwmW4UIgm1e5b95pGivJ5cnoiXevtp87seaxh0DlZFONKUeIFnwyDBUII7mRyXDn7MrFlAcxXtlZnSSCXXLGUMZI7nldiyRI9gXlZYCpfA8XrXrnM6JAIA+6VozhJurAKhygV6rH5yD4Vg+/Bs+wigywE3U79gbqpPzRegmxzKdgv+NNKV900DQVYNzvCU5o6q9d2amU+CDSw6KjU+4SLFOgZ3myXCyE9er3aaROj22sQdPwv8CnwtZstRibpp2SU627J4Vr7caPl8wrZcGvmXgD50mPh9Kdd+Yr5WJFSaAcog082aWBdrB3Qr9LM5DgcWulyDmUMmjA2WWCJN+t6vDT5d+2mYeBiZ2OY5ZkHyUjD6GVGBOZP/lP9EAxi3XwoM3V8TwoEgLD8= mike@thinkyboi
mike@thinkyboi:~$ 

>> operátor

  • > tesója
  • filehoz appendál
curl https://git.sch.bme.hu/mikewashere.keys >> ~/.ssh/authorized_keys

Házi Feladatok

Alap házi

Csinálj felhasználót a csapattársaidnak a VM-edre úgy, hogy hozzáférjenek a statikus weboldalak mappájához, ezután próbáljátok ki, hogy valóban hozzáfértek-e és ha igen, rakjatok valami funky html-t a mappába ajándékba a társaitoknak.

Hint: adduser/useradd, usermod/gpasswd, chmod.

Side Quest

Állíts be kulcsos hitelesítést a képzés VM-eden az SSH kapcsolatodhoz. Ehhez szükséged lesz egy privát és egy publikus kulcsra a kliensgépeden.

Hint: ssh-keygen.

Expert (sudo)

Nyomozz hogyan és miért műküdik a sudo parancs! Ha megtaláltad próbáld meg összefoglalni nekünk néhány mondatban.

Hint: setuid

Expert (Csomag mágus)

Készíts egy új csomagot (package) egy általad válaszott programból (saját program is lehet), egy általad választott disztribúcióhoz.

Jó munkát!

// reveal.js plugins