diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 74098413f1ba9bc800e15db9801a8f332e5c37b2..51f2da7ef0be8a5fcaa14c66805521524e51b2cf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,6 +20,7 @@ home: - ssh mikewashere@centaur.sch.bme.hu mkdir -p /home/mikewashere/public_html/linux # actual work - scp -r $PWD/* mikewashere@centaur.sch.bme.hu:/home/mikewashere/public_html/linux/ + - ssh mikewashere@centaur.sch.bme.hu sh -c "cd /home/mikewashere/public_html/linux; bash cirun.sh" only: refs: - master \ No newline at end of file diff --git a/cirun.sh b/cirun.sh new file mode 100644 index 0000000000000000000000000000000000000000..ea1d798f9dbd2e694e6cd55a5f00ce27e6835af5 --- /dev/null +++ b/cirun.sh @@ -0,0 +1 @@ +echo "Not yet 😉" > "második videó.md" \ No newline at end of file diff --git a/index.html b/index.html index f12fa4d761c1de6686cb4cd28872fbd62ab51653..536ad24d704596e707845c3aeb78439eae7ced9e 100644 --- a/index.html +++ b/index.html @@ -30,7 +30,7 @@ let tmp = [ "első videó", - "második videó", + //"második videó", ]; let pages = []; diff --git "a/m\303\241sodik vide\303\263.md" "b/m\303\241sodik vide\303\263.md" index 32571270fa0203939ca2f62848f0583fade55a62..5abda80ba806dcc159c51d1762c921282a7ebd37 100644 --- "a/m\303\241sodik vide\303\263.md" +++ "b/m\303\241sodik vide\303\263.md" @@ -115,12 +115,49 @@ A `useradd` parancs segítségével hozhatunk létre új felhasználót. Ezután az új felhasználónak be kell állítani egy jelszót, ezt a `sudo passwd mike` parancs kiadása után állítható be. + <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> +<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:~$ ``` + +</Note> + +```shell-session patrik@ubuntu:/home$ useradd -m -s /bin/bash mike useradd: Permission denied. useradd: cannot lock /etc/passwd; try again later. @@ -137,19 +174,23 @@ 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 és egyéb fájlokat nem, ezt az `-r` kapcsoló megadásával tehetjük meg. -``` +```shell-session patrik@ubuntu:/home$ sudo userdel -r mike [sudo] password for patrik: patrik@ubuntu:/home$ ``` +<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. -``` +```shell-session patrik@ubuntu:/home$ sudo passwd mike [sudo] password for patrik: New password: @@ -189,11 +230,11 @@ azt se engedi (1234, asdasd...stb.). `usermod -aG sudo <username>` parancs segítségével hozzáadjuk a megadott felhasználót a sudo nevű csoporthoz. *Hint: `-aG`, mint add group.* -``` +```shell-session patrik@ubuntu:/home$ sudo usermod -aG sudo mike ``` Vagy a létrehozás során adjuk meg a plusz group-ot -``` +```shell-session patrik@ubuntu:/home$ useradd -m -G sudo -s /bin/bash mike ``` @@ -203,7 +244,7 @@ patrik@ubuntu:/home$ useradd -m -G sudo -s /bin/bash mike mely csoportoknak a tagjai. A `groups` parancs önmagában a bejelentkezett felhasználó csoportjait mutatja meg. -``` +```shell-session patrik@ubuntu:~$ groups mike mike : mike sudo patrik@ubuntu:~$ groups patrik @@ -217,7 +258,7 @@ patrik adm cdrom sudo dip plugdev lpadmin lxd sambashare `sudo groupadd <groupname>` parancs segítségével lehet létrehozni egy új csoportot. -``` +```shell-session patrik@ubuntu:~$ sudo groupadd almafa [sudo] password for patrik: patrik@ubuntu:~$ sudo cat /etc/group | grep alma @@ -225,6 +266,10 @@ almafa:x:1002: patrik@ubuntu:~$ ``` +<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 @@ -233,17 +278,22 @@ sudo cat /etc/group | grep alma: - 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. + #### Törlés `sudo groupdel <groupname>` parancs segítségével eltávolíthatunk egy csoportot. -``` +```shell-session patrik@ubuntu:~$ sudo groupdel almafa [sudo] password for patrik: patrik@ubuntu:~$ sudo cat /etc/group | grep alma patrik@ubuntu:~$ ``` +<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 @@ -255,7 +305,7 @@ tartalmazó group. 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. -``` +```shell-session patrik@ubuntu:~$ sudo usermod -aG almafa mike [sudo] password for patrik: patrik@ubuntu:~$ groups mike @@ -278,12 +328,17 @@ patrik@ubuntu:~$ ``` `sudo gpasswd -a <username> <groupname>`: +- 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> + - - 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 hoozá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 #### Felhasználók eltávolítása a csoportból `sudo gpasswd -d <groupname> <username>` parancs segítségével törölhetünk @@ -297,11 +352,16 @@ patrik@ubuntu:~$ groups mike mike : mike sudo ``` +<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`. ### [Superuser](https://en.wikipedia.org/wiki/Superuser#Unix_and_Unix-like) + Ez az oldal is jó: https://mediatemple.net/community/products/dv/204643890/an-introduction-to-the-root-user The root is the user name or account that by default has access @@ -350,7 +410,7 @@ Az ő feladata, hogy minden szükséges szolgáltatást, démont elindítson. ### systemd A systemd egy init rendszer, -amely nagyon elterjed Linux rendszereken, ma már szinte az +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. Feladata, hogy a Linux kernel @@ -419,7 +479,7 @@ az ssh (secure shell). - Megkérdezi a felhasználó nevünkhöz tartozó jelszót, ezt megadjuk ééééééééés bent is vagyunk -```shell +```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 diff --git a/video/masodik b/video/masodik new file mode 100644 index 0000000000000000000000000000000000000000..1b51adb11089588d55d35a0c5759d0ab0c950115 --- /dev/null +++ b/video/masodik @@ -0,0 +1,197 @@ +Sziasztok! +Mike vagyok, főleg a sysadminban tevékenykedek, de megtalálhatsz +a Devteamben, Neteamben és Securiteamben is. + +Ez az előadássorozat a Linuxról szól és a mostani videóban +szó lesz az UNIX-ról, a Linux felépítéséről, +a felhasználók kezeléséről, az init rendszerekről +(de főként a systemd-ről), service-ek kezeléséről, +hálózatkonfigurációról és SSH-ról. +Kezdjünk is bele! + +Mi is az UNIX? +A korábbiakban szó volt arról, hogy "UNIX rendszer", de mit +is jelent ez? +Az UNIX egy '70-es években kifejlesztett rendszer, aminek mai +változatai is léteznek, például a macOS, iOS és társai, +illetve a BSD-k formájában. Ezek igazi UNIX-ok, hiszen kódot +örökölnek az eredeti UNIX operációs rendszerből. + +Ezzel szemben a Linux-ok, UNIX-szerű operációs rendszerek, +mert a Linux fejlesztése teljesen független az UNIX-tól, +csupán az UNIX filozófiáját és viselkedését követik. + +A továbbiakban UNIX rendszer alatt az UNIX-szerű rendszerekre +is gondolok a valódi UNIX-ok mellett. + +Mitől lesz valami UNIX-szerű? +Két fontos elvet említenék, amik megtalálhatóak az UNIX-okban: + +Az első a KISS, vagyis a Keep It Simple, Stupid. + +Ennek a jelentése az, hogy írjunk, rövid, egyszerű programokat, +amik kevés feladatot látnak el, de azokat jól. +Ezeket a kicsit programokat a shell használatával úgyis össze +tudjuk majd kötni és el is tudják egymást indítani. +Ezt tapasztaltuk is, amikor a korábbiakban egymás után +fűztünk kicsi programokat pipe-pal, vagy ahogy láthatóan +a man a háttérben less-t használ a szöveg megjelenítésére. + +Ez azért hasznos, mivel így ha valamelyik része a rendszernek +nem tetszik nekünk, azt könnyen ki tudjuk cserélni egy másik +kicsi programra. + +Emellett, mivel ezek a programok kicsik és egyszerűek, +kisebb a támadási felülete egy-egy programnak. + +A másik UNIX-os elem, amiről beszélnék, +az az "everything is a file", vagyis minden egy file. + +Ezt azt takarja, hogy a gépen minden, legyen az RAM, diszkek, +videokártyák, futó folyamatok vagy bármi más, mind +elérhetőek mint egy file. + +Nézzünk is erre pár példát: +Ha kiadom az lsblk parancsot, akkor az kilistázza a géphez +csatlakoztatott diszkeket. Itt látszik egy olyan, hogy vda és +vda1, illetve látszik, hogy vda1 van a /-be felcsatolva, +ez a root. +A Linuxos jelölésrendszerben a SATA diszkeket +sd<és valami betű>-vel, +NVMe SSD-ket nvme<szám>n<szám>-mal, +virtuális diszkeket pedig vd<majd egy betű>-vel jelöljük, +ezeken a partíciókat pedig SATA és virtuális diszkek esetén +egy számmal, NVMe esetén pedig p és utána egy számmal jelöljük. +Itt /dev/vda a diszk, /dev/vda1 pedig a partíció. + +Ha kilistázom a /dev-et, vagyis devices-t, +ahol a hardverek fájljai élnek, akkor a sok más fájl közt ott van +a vda és vda1 is. + +Ez azért hasznos, mivel így, ha például +egy programot akarnék írni, ami biztonsági menti +a diszkemet, akkor csupán a /dev/vda vagy hasonlót kéne másolnia +a programomnak egy másik meghajtóra. Emellett a fájlrendszert +nem érdekli, hogy ő egy diszken vagy egy fájlon van, +így simán megtehetem, hogy egy fájlrendszeren belüli fájlon +létrehozok és használok egy fájlrendszert. + +Most szeretnék az UNIX-ok architektúrájáról beszélni. +Unixon a KISS-t követve, jóval modulárisabbak ezek a részek, +mint mondjuk Windows-on. +De mik is ezek a részek? + +Kezdjük a bootloader-rel. Ennek a feladata az, hogy +betölti RAM-ba a kernelt és pár, +a gép beindításához szükséges fájlt, emellet dual-boot +esetén lehetőséget ad arra, hogy kiválasszuk, hogy mit tölt be. +Ubuntu-n a bootloader a Grub. + +Miután a bootloader betöltötte a kernelt, esetünkben a Linuxot, +a kernel inicializálja a hardvereket és önmagát, majd beindítja +az init rendszert, ezután szépen a háttérben kezelgeti a +hardvereket. + +Az init rendszer, esetünkben a systemd, pedig beindít minden +szolgáltatást, ami a gép futásához kell, illetve amit kértünk. +Például egy asztali gép esetén a grafikus felületet, +vagy egy szerver esetén a webszervert. + +Az operációs rendszerek azon része, ami a kernelen kívül fut +az az úgynevezett userland. Mivel az Ubuntu egy GNU/Linux +oprendszer, így a userland alapját a GNU programok képezik. +Ezek a programok közt van a cat, cp, rm, ls és sok egyéb +olyan eszköz, amit elvárunk, hogy legyen egy shellben. + +Na de térjünk is át a szárazabb anyagról a gyakorlati részekre! +Előszöris tanuljunk meg usereket kezelni. + +Hozzuk létre a Patrik usert. Ehhez root jogosultság szükséges, +de szerencsére nekem az van. +A patrik user létrehozáshoz a sudo useradd -m patrik parancsot +kéne kiadni, azonban ezen lehet finomítani. +Én szeretném, hogy Patrik ha shellt indít bash-t kapjon, +ne sima sh-t. Ehhez a parancshoz hozzá kell adnom a +-s /bin/bash parancsot is. +Emellett szeretnék ha szeretnék patriknak jogosultságot adni +ahhoz, hogy sambán megosszon mappákat, akkor hozzáadhatom +a sambashare grouphoz a -G sambashare megadásával. +Így létre is jött Patrik fiókja, de még nincs rajta jelszó, +nem lehet belépni. Állítsunk neki jelszót! +Más userek jelszavának állításához érthető okokból +root jogosultság szükséges. +Így hát kezdjük is azzal, hogy sudo. +A passwd paranccsal tudunk jelszót állítani és argumentumként +adjuk meg azt, hogy patrik, hiszen az ő jelszavát +akarjuk beállítani. +Adjunk meg neki valami jó biztonságos jelszót... +mégegyszer... +és most már van jelszava, be tud lépni. + +Mi van, ha a saját jelszavam szeretném megváltoztani. +Ehhez érthetően nem kell root. Futtassuk a passwd-t paraméterek +nélkül. +Ami most újdonság, hogy megkérdi a korábbi jelszavunk, mivel +nem használtunk sudo-t, de adjuk is meg neki. +Most jöhet az új jelszó... +és megint... +És kész is vagyunk. + +Eközben rájöttem, hogy megbízok Patrikban és szeretnék neki +root jogokat adni, vagyis hozzáférést a sudo parancshoz. +Ehhez hozzá kell adnom a sudo grouphoz. Ezt megtehetem +a sudo usermod -aG (vagyis add group) sudo patrik +paranccsal. + +Tegyük fel, hogy mégse szeretném, hogy Patrik hozzáférjen +ehhez a géphez. Töröljük a felhasználóját a +sudo userdel -r patrik paranccsal. +Az -r kapcsoló azt jelenti, hogy patrik home mappáját +is szeretném törölni. Ha nem adom meg, akkor a fájljai rajt +maradnának a gépen. + +Debian alapú disztrókon, így Ubuntun is van egy adduser script +is emellett, ami talán egy kicsit kényelmesebben használható, +azonban nincs minden gépen szemben a korábbi parancsokkal, +amik gnu programok. + +Hozzuk létre újra patrik felhasználóját, de ezúttal az +adduser paranccsal a useradd helyett. +Ha kiadjuk, hogy sudo adduser patrik, akkor az adduser +végigvezet minket a Patrik fiók létrehozásán. +Most adjuk meg patrik jelszavát... +Emellett csomó metaadatot is megadhatunk. +A Full name azért külön mező, mivel az unixos felhasználónevek +csak kisbetűs angol karaktereket tartalmazhatnak. Ez a full name +jelenik meg például a bejelentkezőképernyőn. + +Most megint adjuk hozzá patrikot a sudo csoporthoz, viszont +most ezt az adduser-rel tegyük. +sudo adduser patrik sudo +Király, meg is vagyunk. + +Most töröljük patrikot, de használjuk a deluser parancsot +sudo deluser patrik +kész. + +Most, hogy usereket tudunk kezelni, nézzük meg a csoportkezelést. +Először is nézzük meg milyen csoportok tagjai vagyunk, +ezt a groups-szal tehetjük meg. +Nézzük meg, hogy Bélának milyen csoporttagságai vannak: +ehhez a groups bela parancsot kell kiadni. +Próbaként hozzuk létre a kszksok csoportot. +sudo groupadd kszksok +Nézzük is meg, hogy működött, csináljunk egy mappát és +tegyük elérhetővé a csoport számára. +létrehozok egy mappát +mkdir test +group ownerré teszem a kszksok-at +sudo chgrp kszksok test +és nézzük meg +ls -la + +Most adjuk hozzá magunkat a csoporthoz. +sudo usermod -aG kszksok mike + +Vegyük ki magunkat a tagok közül: +