Skip to content
Snippets Groups Projects
második videó.md 23.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • Fodor Patrik's avatar
    Fodor Patrik committed
    # 2. videó segédlet
    
    
    
    ## UNIX alapelvek
    
    <Note type="tip" label="Magyarázat">
    
    A Linux egy [UNIX-szerű](https://en.wikipedia.org/wiki/Unix-like) rendszer, ugyanazokra az alapelvekre épül, 
    ezért beszélünk most róluk. Amiket ebben a fejezetben olvashattok egyaránt
    vonatkozik a UNIX-ra és a Linux-ra is.
    
    </Note>
    
    Vannak különböző [elvek](https://en.wikipedia.org/wiki/Unix_philosophy), amik alapján egy UNIX operációs rendszert megalkotnak.
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    A Linux is ezen elvek alapján készült.
    
    
    Ezen elvek közül néhány:
    
    
     - Moduláris szemlélet figyelembe vétele
     - Válaszd szét a működést az előírásoktól, szabályzatoktól
     - Egy program legyen kicsi, egyszerű, átlátható, mégis robosztus
     - Szükség esetén, inkább az adatstruktúra legyen összetettebb, ne a program
     - Számolj a potenciális felhasználók felkészültségével
     - Kerüld el a szükségtelen mellékhatásokat
     - Ha a program összeomlik, mérhető, elemezhető legyen
     - A fejlesztő ideje fontosabb a gép idejénél
     - A programok kézi kódolása helyett írj absztrakt programot, amely megalkotja a kódot
     - Írj rugalmas és nyílt programokat
     - A programok, protokollok bővíthetőek legyenek
    
    
    
    ### KISS (Keep it Simple, Stupid)
    
    A legtöbb rendszer akkor működik a legjobban, ha azt egyszerűnek hagyják, 
    és nem teszik egyre bonyolultabbá. 
    Ezért az egyszerűségnek a tervezés egyik fő céljának kell lennie, 
    és kerülni kell az olyan összetételeket, amelyekre nincs szükség.
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    
    ### Everything is a file
    
    
    Ez azt jelenti, hogy a felhasználó fájljai, a rendszer könyvtárkatalógusai
    és a rendszerhez csatlakoztatott hardver eszközök, mint fájlok 
    egységesen kezelhetőek.
    
    
    Ezen megközelítés előnye, hogy ugyanazokat az eszközöket és API-kat
    széles körben fel tudjuk használni. Többféle fájltípus van, de bármelyik 
    megnyitásakor egy állományleíró, ún. file descriptor jön létre. Így a fájl útvonala 
    használható egy címkezelő rendszerként, és a file descriptor pedig a bájtfolyam
    I/O interfésze. De a file descriptor ugyanakkor létrehozható pipe 
    és hálózati socketek megvalósítására is. Ennél fogva azt is mondhatnánk: 
    Minden is egy file descriptor.
    
    Kiegészítésképp, létezik egy sor pszeudo és virtuális fájlkezelő rendszer amelyek
    képesek bizonyos folyamatokról, rendszer információkról adatokat 
    megjeleníteni, hiszen ezek is egyetlen fájl hierarchiába vannak csatolva.
    
    
    ### Architektúra
    
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    A UNIX rendszereknél az operációs rendszer részei
    jóval függetlenebbek egymástól, mint mondjuk egy Windows alapú rendszernél. 
    
    *De mik is ezek a részek?*
    
    #### Bootloader
    Ez a legelső program, ami betöltődik, amikor a gépet bekapcsoljuk.
    A feladata a kernel és pár [alapvető driver és program](https://en.wikipedia.org/wiki/Initial_ramdisk)
    betöltése RAM-ba, majd a kernel elindítása.
    Dual boot esetén lehetőséget ad arra, hogy kiválasszuk melyik OS-t
    szeretnénk elindítani.  
    *Az Ubuntu által használt bootloader a Grub.*
    
    #### Kernel
    A kernel feladata a hardverek bekurblizása és kezelése,
    erőforrások szétosztása, jogosultságok behajtása
    és sok gyakran használt,
    hardverközeli teendőhöz függvényeket biztosítani
    (pl: hálózati csomagküldés, adatblokk beolvasása lemezről, stb.).  
    *Az Ubuntu által használt kernel a Linux.*
    
    #### Init rendszer
    Az init rendszer feladata az operációs rendszer szolgáltatásainak
    elindítása, felügyelete és kezelése.
    Ez indítja el a hálózatkezelőt és bejelentkezőablakot is például.  
    *Az Ubuntu által használt init rendszer a systemd.*
    
    #### Userland
    A userland egy nehezen behatárolható dolog. Igazából minden,
    az operációs rendszerrel jövő, nem kernelben élő szoftver a userland része.
    Ebbe beletartozik az init rendszer is, de mégse venném ide, mivel
    annak elég jól elkülönülő határai vannak.
    
    Egy UNIX rendszer userland-ja alatt általában
    az alapvető programokat értjük, amik a rendszer és rajta futó
    programok használatához szükségesek.  
    Ilyen pélául az `ls`, `cat`, `sh`, `cp`, `rm`, stb.  
    *Az Ubuntu GNU userland-et használ.*
    
    ## A többfelhasználós rendszer működése, kezelése
    
    https://linuxhint.com/ubuntu-user-management/
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    
    ### Felhasználók kezelése
    
    #### Létrehozás
    
    A `useradd` parancs segítségével hozhatunk létre új felhasználót.
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    `sudo useradd -G kszksok -s /bin/bash -m mike`
    - `sudo`: mert root hozhat csak létre új usert
    - `useradd`: ez a parancs hoz létre usert
    - `-G kszksok`: a `kszksok` csoport tagja legyen az új user
    - `-s /bin/bash`: a bash legyen a shellje a usernek
    - `-m`: legyen home mappája
    - `mike`: az új user neve
    
    
    Ezután az új felhasználónak be kell állítani egy jelszót, ezt 
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    a `sudo passwd mike` parancs kiadása után állítható be.
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    <Note type="warning" label="Megjegyzés">
    A `passwd` nem ír semmit a terminálra miközben írjuk a jelszót,
    de ne kételkedjünk, hogy nem látunk semmit, attól még íródik.
    </Note>
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    <Note type="tip" label="Extra infó">
    Ubuntun és egyéb Debian alapú disztrókon megtalálható egy
    `adduser` script is, ami szintén userek létrehozására van.
    Használata kicsit egyszerűbb, azonban nincs minden rendszeren.
    Használata:
    
    ```shell-session
    mike@mike-elementary:~$ sudo adduser patrik
    [sudo] password for mike:            
    Adding user `patrik' ...
    Adding new group `patrik' (1001) ...
    Adding new user `patrik' (1001) with group `patrik' ...
    Creating home directory `/home/patrik' ...
    Copying files from `/etc/skel' ...
    Enter new UNIX password: 
    Retype new UNIX password: 
    passwd: password updated successfully
    Changing the user information for patrik
    Changing the user information for patrik
    Enter the new value, or press ENTER for the default
    	Full Name []: Fodor Patrik
    	Room Number []: 6969
    	Work Phone []: +36306942069
    	Home Phone []: 
    	Other []: Jógyerek amúgy
    chfn: 'Jógyerek amúgy' contains non-ASCII characters
    Is the information correct? [Y/n] y
    mike@mike-elementary:~$ sudo adduser patrik sudo
    Adding user `patrik' to group `sudo' ...
    Adding user patrik to group sudo
    Done.
    mike@mike-elementary:~$ 
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    
    </Note>
    
    ```shell-session
    
    patrik@ubuntu:/home$ useradd -m -s /bin/bash mike 
    useradd: Permission denied.
    useradd: cannot lock /etc/passwd; try again later.
    patrik@ubuntu:/home$ sudo useradd -m -s /bin/bash  mike
    patrik@ubuntu:/home$ sudo passwd mike
    New password: 
    Retype new password: 
    
    passwd: password updated successfully
    
    patrik@ubuntu:/home$
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    #### Törlés
    
    `sudo userdel <username>`parancs segítségével
    eltávolíthatunk egy új felhasználót a rendszerből.
    Azonban ez csak a felhasználót törli a hozzá tartozó `home` mappát
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    és egyéb fájlokat nem, ezt az `-r` kapcsoló megadásával tehetjük meg.
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    ```shell-session
    
    patrik@ubuntu:/home$ sudo userdel -r mike
    [sudo] password for patrik: 
    patrik@ubuntu:/home$
    ```
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    <Note type="tip" label="Extra infó">
    A `userdel` Debian-os párja a `deluser`.
    </Note>
    
    
    #### Jelszó megváltoztatása
    
    
    `sudo passwd <username>` parancs segítségével megváltoztatható
    egy-egy felhasználó jelszava. Akkor ha csak annyit írunk, hogy passwd, azzal
    a bejelentkezett felhasználó jelszavát változtatjuk meg.
    
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    ```shell-session
    
    patrik@ubuntu:/home$ sudo passwd mike
    [sudo] password for patrik: 
    New password: 
    Retype new password: 
    passwd: password updated successfully
    patrik@ubuntu:/home$ passwd
    Changing password for patrik.
    Current password: 
    New password: 
    Retype new password: 
    passwd: password updated successfully
    patrik@ubuntu:/home$ passwd
    Changing password for patrik.
    Current password: 
    New password: 
    Retype new password: 
    Password unchanged
    New password: 
    Retype new password: 
    You must choose a longer password
    New password: 
    Retype new password: 
    Bad: new and old password are too similar
    passwd: Authentication token manipulation error
    passwd: password unchanged
    patrik@ubuntu:/home$
    ```
    
    A jelszó megadásánál van egy pár követelmény, 
    aminek meg kell felelni. Ilyenek azok is, melyek fentebb láthatóak.
    A jelszó nem egyezhet meg a korábbival, nem lehet ahhoz nagyon hasonló,
    hosszúnak kell lennie, ha túl egyszerű
    azt se engedi (1234, asdasd...stb.).
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    
    #### Root jog "szerzése"
    
    
    `usermod -aG sudo <username>` parancs segítségével hozzáadjuk a 
    megadott felhasználót a sudo nevű csoporthoz.
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    *Hint: `-aG`, mint add group.*
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    ```shell-session
    
    patrik@ubuntu:/home$ sudo usermod -aG sudo mike
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    ``` 
    
    Vagy a létrehozás során adjuk meg a plusz group-ot
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    ```shell-session
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    patrik@ubuntu:/home$ useradd -m -G sudo -s /bin/bash mike
    ```
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    ### Csoportok kezelése
    
    
    `groups username` parancs megadásával megtudhatjuk egy felhasználó, 
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    mely csoportoknak a tagjai. A `groups` parancs önmagában a bejelentkezett felhasználó
    
    csoportjait mutatja meg.
    
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    ```shell-session
    
    patrik@ubuntu:~$ groups mike
    mike : mike sudo
    patrik@ubuntu:~$ groups patrik
    patrik : patrik adm cdrom sudo dip plugdev lpadmin lxd sambashare
    patrik@ubuntu:~$ groups
    patrik adm cdrom sudo dip plugdev lpadmin lxd sambashare
    ```
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    #### Létrehozás
    
    
    `sudo groupadd <groupname>` parancs segítségével lehet létrehozni egy új
    csoportot. 
    
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    ```shell-session
    
    patrik@ubuntu:~$ sudo groupadd almafa
    [sudo] password for patrik: 
    patrik@ubuntu:~$ sudo cat /etc/group | grep alma
    almafa:x:1002:
    patrik@ubuntu:~$ 
    ```
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    <Note type="tip" label="Extra infó">
    Debian alapú disztrókon a `sudo addgroup almafa` is működik.
    </Note>
    
    
    A `/etc/group` fájlban található a csoportok listája és azok tulajdonságai.
    sudo cat /etc/group | grep alma:
     - `sudo` csak root joggal olvasható vagy írható a `group` fájl
     - 'cat' kiírja egy fájl tartalmát, ez most a group, vagyis a csoportok listája
     - a `|` segítségével a `cat` kimenetét odaadjuk egy másik program bemenetének (jelen esetben a `grep`)
     - a `grep` a bemenetére kapott szövegből az `"alma"` (rész)szót tartalmazókra fog szűrni
    
    Ennek a segítségével leellenőrézhetó egy a csoport valóban létrejött.
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    #### Törlés
    
    
    `sudo groupdel <groupname>` parancs segítségével eltávolíthatunk egy csoportot.
    
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    ```shell-session
    
    patrik@ubuntu:~$ sudo groupdel almafa
    
    [sudo] password for patrik: 
    
    patrik@ubuntu:~$ sudo cat /etc/group | grep alma
    patrik@ubuntu:~$
    ```
    
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    <Note type="tip" label="Extra infó">
    Debian alapú disztrókon a `sudo delgroup almafa` is működik.
    </Note>
    
    
    Hasonlóan az előző ellenőrzéshez itt is ellenőrizhető, 
    hogy valóban eltávolításra került-e a csoport.
    Mivel a kimeneten nem jelent meg semmi, megállapítható, hogy nincs alma szót 
    tartalmazó group.
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    #### Felhasználók hozzáadása
    
    
    `sudo usermod -aG <groupname> <username>` parancs segítségével felhasználót
    
    lehet hozzáadni a megadott csoporthoz. 
    A `groups` parancs segítségével megnézhetjük, hogy tényleg megtörténik a hozzáadás.
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    ```shell-session
    
    patrik@ubuntu:~$ sudo usermod -aG almafa mike
    
    [sudo] password for patrik: 
    
    patrik@ubuntu:~$ groups mike
    mike : mike sudo almafa
    patrik@ubuntu:~$ 
    ```
    
    Hozzáadni egy felhasználót egy csoporthoz nem csak a `usermod`
    segítségével lehet, hanem a `gpasswd` paranccsal is.
    
    ```
    patrik@ubuntu:~$ groups mike
    mike : mike sudo
    patrik@ubuntu:~$ sudo gpasswd -a mike almafa
    [sudo] password for patrik: 
    Adding user mike to group almafa
    patrik@ubuntu:~$ groups mike
    mike : mike sudo almafa
    patrik@ubuntu:~$ 
    ```
    
    `sudo gpasswd -a <username> <groupname>`:
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    - A `gpasswd` egy parancs, mely segítségével különböző műveleteket lehet
      végrehajtani a csoportokon.
    - `-a` kapcsoló, mely megadja, hogy hozzáadni szeretnénk egy felhasználót. (add)
    - `username` a felhasználó, akit szeretnénk Hozzáadni
    - `groupname` a csoport, amelyikhez szeretnénk hoozáadni a felhasználót
    
    <Note type="tip" label="Extra infó">
    Debian alapú disztrókon a `sudo adduser mike almafa` is működik.
    </Note>
    
    
    #### Felhasználók eltávolítása a csoportból
    
    
    asztrikx's avatar
    asztrikx committed
    `sudo gpasswd -d <username> <groupname>` parancs segítségével törölhetünk
    
    egy felhasználót a csoportból.
    
    ```
    patrik@ubuntu:~$ sudo gpasswd -d mike almafa
    [sudo] password for patrik: 
    Removing user mike from group almafa
    patrik@ubuntu:~$ groups mike
    mike : mike sudo
    ```
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    <Note type="tip" label="Extra infó">
    Debian alapú disztrókon a `sudo deluser mike almafa` is működik.
    </Note>
    
    
    Pontosan ugyanazt kell itt csinálni, mint amikor a `gpasswd` segítségével 
    hozzáadunk egy felhasználót, csupán a kapcsoló eltérő `-d`.
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    ## Init rendszer
    
    
    A UNIX operációs rendszerben vannak olyan feladatok, amiket a
    háttérben (gyakran "észrevétlenül") futó folyamatok végeznek el. 
    Ezeket a programokat daemon folyamatoknak is nevezik. 
    Mivel ezeket a folyamatokat nem a terminálról indítják, 
    általában a rendszerindításkor automatikusan indulnak el.
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    Egy szolgáltatás nem más, mint egy szerver alkalmazás vagy alkalmazások összesége , amelyek 
    a háttérben futnak, és a feladatukra várnak, vagy már valamilyen fontos feladatot 
    (taskot) látnak el. Őket gyakorlatilag csak processzek közti kommunikáció során 
    
    hívják meg.
    
    
    Manapság a démonok (daemon) és a szolgáltatások (service) alatt ugyanazt a 
    
    fogalmat értjük, mivel ezek a programok egyszerre démonok és szolgáltatások is.
    
    Az init rendszer a legelső (és egyetlen) program, démon, amelyet a kernel indulása után elindít.
    Az ő feladata, hogy minden szükséges szolgáltatást, démont elindítson.
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    
    ### systemd
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    A systemd egy init rendszer, 
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    amely nagyon elterjedt Linux rendszereken, ma már szinte az 
    
    összes disztribúció ezt használja, mivel számos előnye van elődeihez képest.
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    Feladata, hogy a Linux kernel 
    indulása után előkészítse az induló szolgáltatásokat 
    és a systemd felel nagyon
    
    sok olyan háttérmunkáért, amiről sok esetben nem is tudunk,
    de szükségesek a rendszerhez, vagy egy-egy feladat indításához.
    
    Megjegyzés: a `.service`-t nem kötelező kiírni
    
    
    Vannak olyan programok, amit szeretnénk, a rendszerrel együtt indítani,
    a rendszerrel együtt szabályosan leállítani, valamint
    igény szerint kézzel indítani, leállítani, újraindítani.
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    #### `systemctl`: a systemd-t piszkáló, vele kommunikáló eszköz
    
    asztrikx's avatar
    asztrikx committed
    `systemctl status <service_neve.service>` Szolgáltatás státusza
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    `systemctl list-unit-files` Létező szolgáltatások kilistázása
    
    
    asztrikx's avatar
    asztrikx committed
    `systemctl start <service_neve.service>` Szolgáltatás indítása
    
    asztrikx's avatar
    asztrikx committed
    `systemctl stop <service_neve.service>` Szolgáltatás leállítása
    
    asztrikx's avatar
    asztrikx committed
    `systemctl restart <service_neve.service>` Szolgáltatás újraindítása
    
    `systemctl enable <service_neve.service>` Indítás a rendszerrel
    
    `systemctl disable <service_neve.service>` Ne induljon a rendszerrel
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    #### `journalctl`: naplózó, logkezelő service
    
    
    `journalctl` Naplók megjelenítése
    
    `journalctl -xe` Hibák megjelenítése
    
    `journalctl -u <service_neve>` Egy szolgáltatás logjainak megjelenítése
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    `journalctl --since "1 hour ago"` Egy időpont óta történt események
    
    #### Saját program használata szolgáltatásként
    
    
    Ha szeretnénk saját programjainkat szolgáltatásként használni,
    ezt megtehetjük, ha írunk a programhoz egy fájlt.
    
    ```
    [Unit]
    Description=Leírás a programhoz
    
    [Service]
    Type=simple
    ExecStart=program_elérési_útja
    
    [Install]
    WantedBy=multi-user.target
    ```
    
    Ezt a fájlt bele kell rakni a `/etc/systemd/system` mappába, ezután a `systemctl` paranccsal 
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    ## Hálózat alapszintű konfigurálása
    
    <Note type="tip" label>
    
    Az esetek többségében ezt nem kell nekünk kézzel megcsinálni, 
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    hanem network manager megoldja helyettünk
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    ### Parancsok a hálózat konfigurálásához
    
    - `ip a`, `ip address`: Kilistázza a hálózati interfészeket és azoknak az IP címeit
    
    ```shell-session
    patrik@ubuntu:~$ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:0c:29:c9:db:ba brd ff:ff:ff:ff:ff:ff
        altname enp2s1
        inet 172.16.228.135/24 brd 172.16.228.255 scope global dynamic noprefixroute ens33
           valid_lft 1684sec preferred_lft 1684sec
        inet6 fe80::e85d:ab8d:2f03:2fa9/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    patrik@ubuntu:~$
    ```  
    
    - `ip r`, `ip route`: Kilistázza a (kernel) [routing table](https://en.wikipedia.org/wiki/Routing_table) tartalmát
      
    ```shell-session
    patrik@ubuntu:~$ ip r
    default via 172.16.228.2 dev ens33 proto dhcp metric 100 
    169.254.0.0/16 dev ens33 scope link metric 1000 
    172.16.228.0/24 dev ens33 proto kernel scope link src 172.16.228.135 metric 100 
    patrik@ubuntu:~$
    ```
    
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    - ip beállítása: `sudo ip addr add IP_cím/hálózati_maszk dev interfész`
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    
    ```shell-session {highlight: [14]}
    patrik@ubuntu:~$ sudo ip addr add 192.168.4.44/24 dev ens33
    patrik@ubuntu:~$ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:0c:29:c9:db:ba brd ff:ff:ff:ff:ff:ff
        altname enp2s1
        inet 172.16.228.135/24 brd 172.16.228.255 scope global dynamic noprefixroute ens33
           valid_lft 1378sec preferred_lft 1378sec
        inet 192.168.4.44/24 scope global ens33
           valid_lft forever preferred_lft forever
        inet6 fe80::e85d:ab8d:2f03:2fa9/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    patrik@ubuntu:~$
    ```
    
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    - router beállítása: `ip route add default via default_gateway_IP_címe`
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    ```shell-session
    patrik@ubuntu:~$ sudo ip route add default via 192.168.4.44
    patrik@ubuntu:~$ ip r
    default via 192.168.4.44 dev ens33
    169.254.0.0/16 dev ens33 scope link metric 1000 
    192.168.4.0/24 dev ens33 proto kernel scope link src 192.168.4.44 
    patrik@ubuntu:~$
    ```
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    ### Hálózatkezelők
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    #### [NetworkManager](https://wiki.archlinux.org/index.php/NetworkManager)
    
    Automatikusan elvégzi a hálózati konfigurációt és kezeli, kontrollálja 
    a hálózati eszközöket.
    
    A network managert többféle módon szabályozhatjuk, állíthatjuk:
     - `nmtui` (Network Manager Text User Interface)
     
    Terminálos "grafikus" felületű alkalmazás, az `nmtui` kiadása után nyílik meg. 
    A nyílik, az enter és az Esc segítségével navigálhatunk benne, 
    valamint a szóközt használhatjuk bizonyos paraméterek megváltoztatásához.
    
    <center>
    <ImageZoom
        src="pics/nmtui1.png"
    />
    nmtui "főmenü"
    <br>
    </center>
    <br>
    
    <center>
    <ImageZoom
        src="pics/nmtui2.png"
    />
    nmtui edit connecntion menü
    <br>
    </center>
    <br>
    
    <center>
    <ImageZoom
        src="pics/nmtui4.png"
    />
    nmtui edit ethernet connecntion
    <br>
    </center>
    <br>
    
    <center>
    <ImageZoom
        src="pics/nmtui3.png"
    />
    nmtui activate connecntion
    <br>
    </center>
    <br>
    
    
     - A hálózati beállítások a grafikus felület beállításaiban is megváltoztathatóak (gnome settings, kde settings...)
    
    <center>
    <ImageZoom
        src="pics/gnome-settings-network.png"
    />
    network settings 
    <br>
    </center>
    <br>
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
     - `nmcli` [NetworkManager command-line tool](https://opensource.com/article/20/7/nmcli)
       
    Parancssori alkalmazás, mellyel 
    a shell-ben különböző kapcsolók segítségével módosíthatjuk a NetworkManager beállításait.
    
    ```shell-session
    patrik@ubuntu:~$ nmcli
    ens33: connected to Wired connection 1
            "Intel 82545EM"
            ethernet (e1000), 00:0C:29:C9:DB:BA, hw, mtu 1500
            ip4 default
            inet4 172.16.228.135/24
            route4 0.0.0.0/0
            route4 172.16.228.0/24
            route4 169.254.0.0/16
            inet6 fe80::e85d:ab8d:2f03:2fa9/64
            route6 fe80::/64
            route6 ff00::/8
    
    lo: unmanaged
            "lo"
            loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
    
    DNS configuration:
            servers: 172.16.228.2
            domains: localdomain
            interface: ens33
    
    Use "nmcli device show" to get complete information about known devices and
    "nmcli connection show" to get an overview on active connection profiles.
    
    Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.
    patrik@ubuntu:~$
    ```
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    
    #### [systemd-networkd](https://wiki.archlinux.org/index.php/Systemd-networkd)
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    Hálózati szolgáltatás, amely hálózatokat kezeli, felismeri és konfigurálja a hálózati eszközöket, a NetworkManager-höz hasonlóan.
    Míg az Ubuntu Desktop verziója a NetworkManager-t használja, addig az
    Ubuntu Server a systemd-networkd-t a hálózat konfigurálásához.
    
    A különböző beállításokat egy-egy plain-text fájlban tárolja, ezek kiterjesztése általában `.network`.
    Ha kézzel szeretnénk egy beállítást hozzáadni, akkor mi is írhatunk ilyen
    fájlokat. Ezeket különböző [mappákba helyezhetjük el](https://wiki.archlinux.org/index.php/systemd-networkd#Configuration_files), 
    a fajtájától és prioritásától függően. (Általában `/etc/systemd/network/`)
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    A fájlok nagyon hasonlóan épülnek fel, mint a systemd `.service` fájljai.
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    ```
    Wired adapter using a static IP
    
    /etc/systemd/network/20-wired.network
    
    [Match]
    Name=enp1s0
    
    [Network]
    Address=10.1.10.9/24
    Gateway=10.1.10.1
    DNS=10.1.10.1
    ```
    
    
    Rafael László's avatar
    Rafael László committed
    A networkd-nek egy nagyon hasznos eszköze, a `networkctl`.
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    Ennek segítségével ellenőrizhetjük és teljes
    információkat szerezhetünk a hálózati interfészekről.
    Ha új konfigurációs fájlt hoztunk létre és szeretnénk betölteni, azt a 
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    `networkctl reload` parancs segítségével tehetjük meg, majd a `networkctl reconfigure` segítségével alkalmazhatjuk is.
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    
    ## Távoli hozzáférés (SSH)
    
    A rendszerhez hozzáférhetünk távolról is, így is megkönnyítve a munkánkat,
    nem kell fizikailag az adott számítógépnél/szervernél lennünk. 
    Erre többféle módszer is van, de a legbiztonságosabb és ma is leginkább használatos
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    az ssh (secure shell).
    
    Fodor Patrik's avatar
    Fodor Patrik committed
    
    ### Használata
    
    
     - `ssh a_távoligépen_lévő_felhasználónk_neve@a_távoli_gép_neve`
     - Megkérdezi a felhasználó nevünkhöz 
    tartozó jelszót, ezt megadjuk ééééééééés bent is vagyunk
    
    
    Tóth Miklós Tibor's avatar
    Tóth Miklós Tibor committed
    ```shell-session
    
    [patrik@patrik-laptop ~]$ whoami
    patrik
    [patrik@patrik-laptop ~]$ ssh hallgato@172.16.228.130                                                                                                                                       3944ms  2021. márc. 16., kedd, 20:41:28 CET
    hallgato@172.16.228.130's password:
     
    Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-65-generic x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/advantage
    Last login: Tue Mar 16 20:41:47 2021
    hallgato@ubuntu:~$ whoami
    hallgato
    hallgato@ubuntu:~$
    ```
    Ez mit is mutat?
     - `whoami` (ki vagyok én?) válaszol erre a kérdésre
       - Ezt a parancsot kiadom a saját gépemen és visszaadja, hogy `patrik`
     - `ssh hallgato@172.16.228.130 ` szeretnék belépni ssh-n keresztül
       a 172.16.228.130 ip címmel rendelkező gépre hallgato felhasználó névvel
     - `hallgato@172.16.228.130's password:` itt kell megadni a felhasználó jelszavát
        - Ha létezik a felhasználó és jó a megadott jelszó, akkor belépünk a rendszerbe
        - Ezután látható, hogy tényleg sikeresen beléptem, egy "üdvözlő üzenet" fogad,
        valamint a promt is megváltozott `hallgato@ubuntu:~$`-ra
     - `whoami` parancs kiadása a távoli gépem
        - Itt már a `hallgato` nevet kapom vissza, ebből is látszik, 
          hogy most egy másik felhasználóként használom a shell-t
    
    asztrikx's avatar
    asztrikx committed