Kiszolgálók Üzemeltetése 2010.szeptember – december Gyakorlati anyag
Gyakorlaton használt programok: Oracle VM VirtualBox /virtuálizációra alkalmas szoftver/ Debian(Linux disztribució)
1. Gyakorlat Téma: Debian Telepítés, alapok. Fogalmak -Mi az a Debian? A Debian szabad számítógépes operációs rendszer. Az operációs rendszer alapvető programok összessége, amelyek a számítógép működéséhez szükségesek. A Debian a Linux kernelt használja (a kernel az operációs rendszer magja), de a legtöbb alapvető program a GNU projektből származik; innen ered a GNU/Linux elnevezés. A Debian GNU/Linux többet nyújt egy csupasz operációs rendszernél: több mint 25000 csomagot, azaz előre lefordított, tetszetős formátumba csomagolt szoftvert tartalmaz, amelyet könnyen telepíthetsz a gépedre. -Partíció: A merev lemez egy logikai egysége, amely biztosítja egy filerendszernek a helyet. Egy partíciót egészen biztosan létre kell hoznunk.A bootolás folyamán a merevlemez az MBR(MasterBootRecord)-be kerül betöltésre.Ez az MBR a lemez felület első sávjának első szektora és 512 byte nagyságú.Maximálisan 4 partíciós bejegyzést tartalmazhat(kevesebb is lehet).
Feladatok és parancsok /telepítésnél a hálozati tükörhöz: http://EHA:jelszó@10.0.0.1:4444/
-Feladat: Nézzük meg milyen partícióink vannak, majd adjunk hozzá egy újat. ls -l /dev/sd* ls -l /dev/sdc fdisk /dev/sda majd itt m betű a help betöltésére p – print the partition table majd, válasszuk a primaryt, fogadjuk el a kezdőértéket, a végértéknek pedig irjuk be +100MB majd, újra „p” billentyű és elméletileg van 3 partíció – 1.az oprendszeré 2.swap 3. amit most csináltunk- .
w- kilépés Jöhet egy újraindítás - shutdown -h now -Feladat: Fájlrendszer létrehozása, be- és lecsatolások mkfs.ext3 /dev/sda3 cd mkfs mkdir linux3 touch alma mount /dev/sda3 linux3 cat /etc/mtab cat /proc/mounts umount /dev/sda3 umount /mnt/linux3
2.Gyakorlat Téma:File rendszer létrehozása,file rendszer fel- és lecsatolása kézzel és automatikusan Zh-ban lehet: telepítés közbeni partíciónálás pl: / /boot /swap
1GB 100MB 200MB
Primary Primary bootflag on Primary
/home /valami
100MB 200MB
Logical Logical
mind a kettő Extendedbe van
-Feladat: Az előzőekben becsatolt fájlrendszert, mindig bootljuk indításkor fstab – megadja, hogy „miket bootolunk be” more /etc/fstab vi /etc/fstab vagy
nano /etc/fstab
majd a fájlt egészítsük ki a következővel: /dev/sda3
/mnt/linux3
ext3
default
csatolási pont
típus
opció
0
0
ahol fájlrendszer reboot
„dump”
„pass”
-Feladat: Nincs elég memória, plusz swap területre lenne szükségem,mit tegyek? Itt említett fogalmak: /dev/zero : Csupa-Csupa 0-kat olvasunk ki. /dev/null : „Fekete-lyuk”, amely mindet elnyel. A megoldás extra swap fálj létrehozása. dd if=/dev/zero of=/extra-swap bs=1024 count=65535 /ahol: dd = valahonnan olvasok, valahova írom, if = bemeneti fájl, of = kimeneti fájl, bs = blockméret, count = számláló/ ls -l mkswap /extra-swap 65535 free swapon /extra-swap vi /etc/fstab v. nano /etc/fstab majd egészítsük ki a fájlt a következővel /extra-swap none swap sw mentem, majd reboot
0
0
Feladat: Csomagok telepítése, törlése, lekérdezések stb. dpkg -s /sbin/fdisk dpkg -l util-linux apt-get sources.list → honnan vegye a csomagot apt-cache → keresésre lekérdezésre alkalmas apt-cache search fdisk apt-cache show util-linux ,majd apt-get install és apt-get remove parancsokra több pl., tehát telepítés és törlés. PL.: apt-get install telnet apt-get remove telnet Telepíthetünk továbbá, ha kiadjuk az aptitude parancsot és ott kiválasszuk a felrakni kívánt csomagot.
3.Gyakorlat Téma:Hálózat konfigurlása stb. Feladat: Hálózati beállítások ifconfig -a , kiadja nekünk a hálozat paramétereinket. Majd belépés a /etc/network, itt egy ls -l paranccsal kilistázhatjuk a a fájlokat. Kell szerepelni egye interfaces fájlnak. Ezt a fájlt szerkesztettük vi vagy nano segítségével nano /etc/network/interfaces v. vi /etc/network/interfaces Ebben a fájlban az eth0-kat eht1-re állítottuk át , majd elmentettük a módosított interfaces fájlt. Következőhetet az interface „felhúzása”(majd próbaképpen a „lehúzás”). ifup eth1 ifdown eth1 Ezzel a feladat egyik részét teljesítettük is. Következő lépés megtételéhez könyvtárat kell váltanunk. Tehát átlépünk a /etc/apt „mappába”. cd /etc/apt Célszerű lenne újra egy ls -l parancsot kiadni, lássuk mit is tartalmaz az aktuális könyvtár.Itt találunk egy sources.list fájlt, amit szerkezeteni fogunk, ismételten csak nano vagy vi segítségével. Ez a fájl a következőket tartalmazza:FTP és HTTP címeket tartalmaz ahonnan információt és csomagokat tölthet le a program nano /etc/apt/sources.list v. vi /etc/apt/sources.list Nézzük mit módosítottunk a fájlban. Először is kommentezzünk(#) ki minden, így induló sort „deb cdrom ….”(hogy a továbbiakban ne a „lemezről” telepítsen és szedje a csomagokat).Majd egészítsük ki egy olyan sorral(feltéve, hogy nem szerepel),mint pl a következő: deb http://ftp.hu.debian.org/debian lenny main Ha valakiben felmerülne a kérdés mik is ennek a sornak az összetevői, akkor nem marad kielégületlenül a tudáséhsége: 1. deb vagy deb-src 2. URI: debian csomagokat tároló könyvtár 3. disztribúció: stable, frozen, unstable vagy specifikus név: hamm, potato 4. komponens: main, contrib, non-free Ha ez megvan jöhet a mentés(Órán kiegészítettük az /etc/apt/apt.conf-ot, mivel proxyt használtunk, de erről most itt nem lesz szó). Mindezek után jöhet a rendszerünk „aktuálizálása”(Módosítás után, frissíteni kell az elérhető csomagokat), egy update-el. apt-get update
Miután elméletileg most már rendelkezünk IP-vel és hálózattal, tehetünk egy próbát annak működésére. Elsőként adjunk ki ismét egy ifconfig parancsot és figyeljünk meg a változásokat utána pedig töltsünk le egy fájlt a netről(itt az a pl. az lesz ami gyakorlaton volt.). ifconfig -a wget http://morpheus.pte.hu/~peteri/foo.tar.gz Ha a megfelelően végeztük a feladatunkat, akkor a fájlnak ott kell lennie abban a mappában ahová letöltöttük a wget parancs segítségével.Tehát belépés a mappában ahova lekaptuk és jöhet az ls -l. Ha megvan a fájl akkor láthatjuk, a file egy tömörített tar archívum, így csomagoljuk ki. Ezt a fájlt le kell fordítanunk. tar tvf foo.tar cd foo ./configure --prefix=/home/sajat make make install Az első sorban belépünk a forrást tartalmazó könyvtárba, majd a második sorban konfiguráljuk. A configure shell script a szabad forrású programoknál szokásos használni és lényegében ez a script ellenőrzi, hogy a rendszeren a szükséges könyvtárak, fejléc file-ok, programok jelen vannak-e. A --prefix opcióval azt adjuk meg, hogy az installálás során melyik könyvtárba másoljuk a file-okat. Majd gyakorlásképpen állítsuk vissza a fájlt, hogy .tar.gz legyen a végződése. make install tar cvf uj.tar ./foo gzip uj.tar uj.tar.gz Mielőtt a feladatunk végére érnénk nézzük még rá a file nevű parancsra. Valószínűleg még nem áll rendelkezésünkre, ezért telepítenünk kell. apt-get install file , és már használhatjuk is. Segítségvel bő információnkat kaphatunk arról a fájlról amelyikre alkalmazzuk. Pl: file uj.tar.gz
Feladat: Debian-Hack Kezdjük a feladatot egy reboot-al és ne engedjük, hogy rendszer elkezdje bebootolni az oprendszert(pl. nyomjunk egy fel-nyílat ).Álljunk rá a debianunkra, amit „bootolni szoktunk”. Nyomjunk egy e betűt, majd tegyük meg ezt ismételten. Írjuk be a következőt: init=/bin/bash rw adjuk meg az új jelszót és nyomjunk egy sync Ezután már beléphetünk rendszergazda jogokkal a rendszerbe. Tanár Úr 2 kivédési módszert említett: 1.BIOS boot jelszavazása 2.Fizikaliag nem férhet hozzá Feladat: Futási szintek/run-level/ megváltoztatása és egyéb parancsok. A rendszer állapotai: – Kikapcsolva – Single-user mód – Multi-user mód Ismétlésképpen idézzük fel a futási-szinteket: 0 1 S vagy s 2 3 4,7,8,9 5 6 Q,q,a,b,..
- Leállított állapot, ki lehet kapcsolni - Rendszer adminisztrációs állapot,egy felhasználó! - Single-user mód - Mulit-user mód, UNIX-tól függően - Távoli filerendszer állapota: szervereknek az alapvető futási szintje - Adminisztrátor adja meg - Mint a 3.szint, de grafikus felület is elindul - Újraindítás, 0. szint és egy újabb szint elindítása - Pseudo állapotok
Kezdésként adjuk ki egy who parnacsot -r paraméterrel, vagy alkalmazzuk a runlevel parancsot. Ennek segítségével megtudhatjuk, hányadik futási-szinten vagyunk jelenleg. who -r runlevel
5.gyakorlat Téma: shell scriptek, felhasználók létrehozása Feladat: Shell script, új bash inditása stb. Először is nézzük meg mit ad a következő pár parancs eredményül echo SajátNév echo SHELL echo $SHELL
- SajátNév, ezt kaptjuk eredményül - SHELL-t kapjuk eredményül -bin/bash, futó shell-t kapjuk eredményül, a $ előtag miatt.
NEVEM=”SajátNév” -Látszólag nem történik semmi, de elmentjük a SajátNevet egy NEVEM változóba echo $NEVEM -Megkapjuk amit a NEVEM változóba beirtunk Most pedig tekintsük át a különböző aposztrofok müködését és próbáljuk is ki őket, amelyekkből 3 fajta van: ' ” `
- nem enged behelyettesítés - figyelembe veszi a speciális karaktereket, $' - parancsvégrehajtás és a kimenet „elfogása”
echo „$NEVEM” echo `$NEVEM` echo „\$NEVEM” echo „\”Séf Bácsi”\” echo `”Séf Bácsi”`
- mivel engedi a behelyettesítést, ezért megkapom a NEVEM változó - nincs eredmény mivel, nem enged behelyettesítést - a \ jel miatt a $NEVEM-et fogja eredményül adni -”Séf Bácsi” lesz az eredmény. - Továbbra is semmit nem ad vissza.
Tegyünk egy kis kitértőt.Bash inditása és leállítása.Új bash-t nagyon egyszerűen indithatunk, csupán egy bash parancsot kell kiadnunk.Kilépni belőle pedig az exit parancsal vagy a CTRL+D billentyűkombiáncióva tudunk.Próbaképpen inditsunk a meglévő 1 mellé még 3 basht, majd adjuk a ps parancsot és láthatjuk, hogy 4 bash is fut.Eztuán teszteljük a kilépés módokat és az egyik bashből CTRL+D, a másikból pedig az exit paranccsal lépjünk ki. bash bash bash ps /CTRL+D/ exit Ha újra inidtunk egy bash-t akkor láthatjuk, hogy az elözőben létrehozott változó nevünk itt már nem él.Természetesen erre is van megoldás mégpedig az export parancs segítségével, mely egy gloáblis változót hozz létre a számunkra. Export NEVEM
root/bin szeretném az itt lévő parancsokat használni: export PATH=”/usr/local:/root/bin” export PATH=”$PATH:/root/bin” Ezután egy ugrás a következő gyakorlat anyagára és majd a végén,lesz található az összes shell-script ami elhangzott a gyakon vagy az előadáson.
6.gyakorlat Feladat:Műveletek a felhasználókkal/felhasználókezelés Felhasználót többféleképpen adhatunk, hozzá a rendszerhez, mi itt most ezekből kettőt fogunk áttekinteni.Az első módszer a kézi hozzádás lesz, ehhez elkell mennünk az /etc mappába, ahol a passwd fájlt kell szerkeszteni.Célszerű mintának venni a már meglévő felhasználókat, és azok alapján hozzáadni az új usert(pl: Test1).Ha ez megvan akkor még egy jelszót is kell csatolnunk a felhasználónknak.Esteleg szükség lehet egy home könyvtárra is az adott felhasználóhoz, ha az nincs neki, így készítsünk neki egyet, meghatározott fájlokkal.Ezt úgy tudjuk megoldani ha módosítjuk az /etc/skel mappa tartalmát. Amit az etc/skell mappában létrehozhunk az létrejön a felhasználó a home könyvtárában a saját jogosultságaival. cd /etc ls -l vi /etc/passwd v. nano /etc/passwd passwd Test1 cd /home mkdir Test1 chown Test1 Test1 cd /etc/skel /és itt létrehozhatunk tetszőleges fájlokat/ Nézzük a másik módszert amivel felhasználót hozhatunk létre.Ez lesz az adduser parancs, amelyet ha kiadunk, akkor több adatot is megkell adnunk az új felhasználóról. adduser test2 Itt is megadhatunk különböző paramétereket pl, hogy mi legyen a felhasználó saját mappája,milyen shellt hassználjon, vagy pl. milyen userid-a legyen.De természetesen más jellemzők is megadhatóak.Ezeket keressük a man-ban adduser --home /home/user3 --shell /bin/sh adduser --uid 1010 test6 A létrehozhott user-eket természetesen törölni is lehet, erre alkalmas parancs a deluser. Amelyet azonban ha így csupaszon kiadjuk, csak magát a felhasználót törli a home-ját pl nem.De itt is megadhatók különböző paraméterek. deluser test5 deluser --remove -home test6
A felhasználókat le is tilthatjuk adott esetben, ez történhet pl. egyénenként vagy csoportosan.Nézzünk pár példát passwd -l test7 A passwd fileban zárolja(l – lock), a test7 felhasználót, aki így nem tud bejelentkezni. Egy másik megoldás lehet, ha a shadow fájlban(etc/shadow) a tiltani kívánt felhasználó jelszava helyett egy x -et rakunk, a sor elejére pedig egy ! jelet. Letiltahatunk mindennemű belépést, ha a passwd fájlban a /bin/false -t adjuk meg. SCRIPTEK Pár alap az induláshoz: - A batch fájlhoz hasonló eljárás. - Programunk első sorában minden esetben meg kell adnunk a futtató programot, jelen esetben a bash-t. – Tehát a fájlunk kezdete legyen: #!/bin/bash – Felkiáltójel nélkül más futtató programot is megadhatunk a programunk első sorában. – Futtatási jog nélkül nem tudjuk használni, ezért chmod +x fájl – Programunk futtatásához ./program_nev parancsot kell használnunk. És tekintsük át röviden az irásjeleket: - Escape-karakter: \ Bourne Again Shell escape-karaktere. Többek között ezzel a jellel lehet elérni, hogy az őt követő speciális karakter elveszítse módosító hatását. - Dollárjel: $ Segítségével változó neve és értéke között tudunk különbséget tenni. Ha $valtozo-t írunk, az a változónk értékét fogja visszaadni. - Kétszeres idézőjel: " " Az idézőjelek arra valók, hogy egyes karakterek vagy lefoglalt szavak speciális jellegét feloldják. - Egyszeres idézőjel: ' ' Megakadályozza a héjat (shell), hogy a $-t a változók jelzésének tekintse - Szögletes zárójel: [] Intervallumok meghadására szolgáló eszköz - Kérdőjel: ? Egy elem helyettesítésére szolgáló jel - Csillag: * Joker karakter, bármennyi karakter helyettesítésére - Felsővessző: ` (jobbra tartó - AltGr + 7) Operátor, mely a két ` ` között lévő jelsort végrehajtja, és a kimenetét adja vissza úgy, hogy az új sor karakter helyére szőközt rak. - Kettőskereszt: # Kommentezés eszköze. (megjegyzés)
Az aposztrofokról már feljebb volt szó most tekintsünk át még pár elméleti alapot. Érdemes például az argumentomakt áttekinteni. Argumentumok • $1-$9 - A shell script argumentumai • $# - Argumentumok száma • $* -Összes argumentum • Nem csak 9 argumentum lehet • shift paranccsal balra lehet tolni ket - 2-ik lesz az els - 3-ik lesz a második - és így tovább A test parancsra is érdemes pár pillantást vetni,amelynek segítségvel valamilyen feltételt ellenőrizhetünk.A parancsnak megfelel a [] jel is. Például: if test „$v1” = „$v2” then művelet fi vagy [] jellel if [ „$v1” = „v2” ] then művelet fi -f file reguláris file-e -e file file létezik-e -d file könyvtár-e s1 = s2 két szöveg egyenl-e s1 != s2 két szöveg nem egyenl n1 -eq n2 két egész egyenl-e n1 -ne n2 két egész nem egyenlő
Mielőtt jönnének a különböző tényleges scriptek még nézzük át a különböző vezérlési szerkezetek. /if-else,for ciklus, while és until,case/ – if , felételes utasítás Feltételes elágazást a következô módon csinálhatunk: if feltétel then parancsok (statements) fi Az if az őt követő parancsok közül az utolsónak az exit statusát nézi, ha az nulla (vagyis a parancs sikeresen futott), akkor "igaz"-nak veszi, különben "hamis"-nak. (Megjegyzés: a C programozási nyelvben ez pont fordítva van: a nulla felel meg az "hamis"-nak, minden más meg az "igaz"-nak). Például: #!/bin/sh if who | grep XY > /dev/null then echo A XY jelenleg be van jelentkezve fi A grep eredményét átirányítottuk a /dev/null -ba, mivel csak a grep exit statusa érdekel bennünket: szerepel az "XY" string a who parancs által kiírt sorokban vagy nem. Az if-et értelemszerűen és a más programozási nyelvekben megszokott módon ki lehet egészíteni else és elif szerkezetekkel ( az utóbbi az else if-nek felel meg). Az elôzô példa egy általánosított változata: #!/bin/sh if test $# -eq 0 then echo Használat: arguentumként egy usernevet kérek. exit 1 fi XY=$1 if who | grep $XY > /dev/null then echo $XY be van jelentkezve else echo $XY nincs bejelentkezve fi –
for ciklus
A for ciklus némiképp különbozik a C nyelv for ciklusától, mégpedig abban, hogy csak egy rögzített lista elemein lehet végigmenni vele. Tipikus felhasználása, hogy bizonyos kiterjesztésû file-okon vagy a parancssor argumentumain megyünk végig.
Például a következő script azokat a txt kiterjesztésű file-okat, amikben a "font" string szerepel egy könyvtárral feljebb mozgatja: #!/bin/sh for i in *.txt do if grep font $i > /dev/null then mv $i .. fi done –
while és until
A while ciklus addig fut, amíg a hasában levô feltétel igaz, az until pedig pont fordítva: amíg a feltétele igaz nem lesz. Mindkét esetben do és done közé kell zárni a ciklus parancsait. A következô script addig irogatja ki kétmásodpercenként üzenetét, amíg le nem lövöd: #!/bin/sh while true do echo itt vagyok sleep 2 done Mellesleg a C nyelvhez hasonlóan, minden ciklusból break-al törhetünk ki, és continue-val ugorhatunk a ciklus elejére. – case A case elágazást a következő példákon tanulmányozd! case $1 in -f) ... -f opció ;; -d) ... -d opció ;; *) echo “Ismeretlen paraméter” >&2 exit 1 esac #!/bin/sh case $1 in "-a") echo "-a opcio eseten ezt irom ki" ;; "-o") echo "-o opcio eseten ezt irom ki" ;; *) echo Egyebkent meg ez a default. esac
Script példák (előadás anyag és gyakorlati feladatok): #!/bin/bash name="Ivanyi Peter" echo "$name" echo '$name' Eredmény: Ivanyi Peter name #!/bin/bash BASH_VAR="Bash Script" echo $BASH_VAR echo \$BASH_VAR echo "\\" Eredmény: Bash Script $Bash_VAR \ #!/bin/bash echo `uname -o` echo uname -o Eredmény: Linux , tehát végrehajtja a parancsot uname -o #!/bin/bash SRCD="/home/" TGTD="/var/backups/" OF=home-$(date +%Y%m%d).tar tar cvf $TGTD$OF $SRCD Eredmény: Home könyvtár tárolása, dátum szerinti file-al #!/bin/bash if [ $# -ne 1 ]; then echo "Usage - $0 file-name" exit 1 fi if [ -f $1 ]; then echo "uzenet 1" else echo "uzenet 2" fi Eredmény: File létezésének ellenőrzése
#!/bin/bash for i in `seq 5`; do echo -n '*' done Eredmény: N darab karakter nyomtatása, jelenesteben: ***** #!/bin/bash for i in `seq 5`; do for j in `seq 5`; do echo -n '*' done echo ' ' done Eredmény: „Alakzat” nyomtatása: ***** ***** ***** ***** ***** #!/bin/bash for i in `seq 5`; do for j in `seq $i`; do echo -n '*' done echo ' ' done Eredmény: Háromszög nyomtatása * ** *** **** ***** #!/bin/bash for i in `seq 5 -1 1`; do for j in `seq $i`; do echo -n '*' done echo ' ' done ***** **** *** ** *
#!/bin/bash FILENAME=/etc/passwd for user in `cut -d: -f1 $FILENAME` do echo $user done Eredmény: Felhasználók listázása #!/bin/bash for i in `ls`; do kk=`head -c2 $i` if [ "$kk" = '#!' ] ; then echo "$i: ilyen" else echo "$i: olyan" fi done Eredmény: Egy fájl script vagy nem script #!/bin/bash n=`date |cut -d" " -f1` case $n in Mon)echo "Hetfo" ;; Tue)echo "Kedd" ;; Wed)echo "Szerda" ;; Thu)echo "Csutortok" ;; Fri)echo "Pentek" ;; Sat)echo "Szombat" ;; Sun)echo "Vasarnap" ;; esac Eredmény: A hét napjainak kinyomtatása
#!/bin/bash ps -fe | grep apache > /dev/null if [ $? -eq 0 ]; then echo "uzenet1" else echo "uzenet2" fi Eredmény: Fut-e az apache program #!/bin/bash mi=$1 mir=$2 for i in $( ls *$mi* ); do src=$i tgt=`echo $i | sed -e "s/$mi/$mir/"` mv $src $tgt done ./proba.sh old txt Eredmény: Fájl átnevezése minták alapján #!/bin/bash echo $1 | egrep "tar$" > /dev/null if [ $? == 0 ]; then tar tvf $1 exit 0 fi echo $1 | egrep "gz$" > /dev/null if [ $? == 0 ]; then tar tzvf $1 exit 0 fi echo "Ismeretlen" Eredmény: „Tarview” #!/bin/bash for i in `ls`; do j=`echo $i | tr "[a-z]" "[A-Z]"` cp $i $j done Eredmény: Fájl neveinek nagybetűssé konvertálása
#!/bin/bash echo "Enter your name : " read name echo "Hello $name , Jo napot." Eredmény: Beolvasás
#!/bin/bash if [ $# -ne 2 ] then echo "Usage - $0 x y" exit 1 fi echo "Eredmenye $1 es $2 -nek `expr $1 + $2`" Eredmény: Két szám összeadása #!/bin/sh INPUT_STRING=hello while [ "$INPUT_STRING" != "bye" ] do echo "Gepelj valamit (bye kilepeshez)" read INPUT_STRING echo "Ezt gepelted: $INPUT_STRING" done Eredmény: Olvasás végjelig •
http://www.ibiblio.org/pub/linux/docs/HOWTO/translations/hu/Bash-Prog-Intro-HOWTO-hu.txt
Téma: Hálózat kezelés A jegyzet elején már volt pár Hálózati beállítás és most ismétlésként érdemes újra megnézni, mert zh-n is lehet, hogy nem lesz hálozat a gépen és bekell állítani Első lépésben adjuk ki az ifconfig parancsot -a paraméterrel. ifconfig -a Ez megadja nekünk, hogy melyik ethernet kártyát használjuk.Ha nincs hálózat akkor az egyik hibaforrás az lehet, hogy nem a megfelelő eth. kártya van beállítva.Tehát pl: eth2 van beállítva, de nekünk eht0-unk van.Jogos a kérdés „mi a megoldás?”.Nos van 2 lehetőségünk is: 1.Megoldás: Szerkesztjük az /etc/network/interfaces fájlt és az ifconfig által kiadott ethernet kártya számát állítjuk be az ott szereplő helyett abban az esetben, ha nem egyezenek. Pl. a fájlban eth2 van, de nekünk az eth0 kell akkor minden eth2-t eth0-ra változtatunk.Majd adjuk ki az ifup és az adott ethernet kártyát számát, jelenesetben eth0-t.Tehát: vi /etc/network/interfaces itt elvégezzük a fenntebb leírt változtatásokat ifup ethX ,ahol X az adott ethernet kártya száma 2.Megoldás A másik verzió amiben sajátkezüleg egy sorral beállítjuk a dolgokat. Ki kell adni a következő parancsot az alább módon az értelemszerű címekkel. ifconfig ethX Ipcim netmask mask broadcast egy konkrét példa: ifconfig eth0 192.168.1.22 netmask 255.255.255.0 up Routing és a route parancs: Routing def/Route: Az IP Routing olyan folyamat, amely segitségével egy több hálózati interfésszel rendelkezõ host eldönti, hogy a kapott IP csomagokat merre továbbítsa. Egyszerűbb nyelven, milyen hálózati cím estén hova küldi a csomagot. Lássunk egy példát és mivel a hálozat konfigurálása már megtörtént jöhet a következő lépés adjunkhozzá egy sort a routing táblához, amivel megmondjuk a kernelnek, hogy
a 192.168.1.* IP címu gépeknek szánt csomagokat ezen az interfészen küldje ki: /érdemes átállítani a virtuális gépünk NAT-ját HOST ONLY-ra állítani/ route add -net 192.168.1.0 netmask 255.255.255.0 eth0 route add default gw 192.168.1.1 eth0 értsd: adott hálózaton milyen gateway-en akarok kiküldeni Megadható egyben is, értelmeszerűen az első parancsot kiegészítjük a gw-el. Természetesen törölni is lehet ezt a bejegyzést, még pedig a következő módon: route del -net 192.168.1.0 netmask 255.255.255.0 eth0 route del default gw 192.168.1.1 eth0
Telnet: Mi a Telnet? „A távoli számítógéppel való kapcsolatfelvétel legegyszerűbb módja, ha a telnet kliens programot, paraméterként az elérni szándékozott távoli gép teljes Internet nevével vagy címével meghívjuk.Az IP cím ismerete hasznos lehet hibás névszerver esetén. Saját hálózaton belül a teljes név helyett elegendõ csak a gép neve is. Ha a kapcsolat létrejött, akkor a továbbiakban ugyanugy dolgozhatunk, mintha annak egyik terminálja mellett ülnénk,azaz mindazokat az utasításokat használhatjuk, amelyeket az adott gépen lokálisan is kiadhatnánk. A kapcsolni kívánt gép megadásához megvalósítástól függõen vagy prompt-ot kapunk, vagy OPEN paranccsal nyithatjuk és CLOSE paranccsal zárhatjuk le a távoli géppel a kapcsolatot.Ha az utóbbi megoldást használjuk, akkor a CLOSE után még a telnet programban vagyunk és ebbõl a QUIT utasítással léphetünk ki.A Telnet lényege, hogy a saját számítógépedrôl be tudsz jelentkezni egy másik(mindegy, hogy a világ melyik részén lévô) számítógépre. Az FTP-vel és aGopher-rel ilyet már csináltál, de akkor csak az ott lévô adatokat érted el.Telnet esetében programokat is futtathatsz a távoli (remote) gépen. A klasszikus (és legkevésbé gyakori) felhasználás, hogy ha például külföldön vagy, bármelyik géprôl be tudsz jelentkezni az Internet szolgáltatód gépére,és el tudod olvasni a leveleidet, új leveleket tudsz írni stb, anélkül, hogynemzetközi telefonhívást végeznél. És abból adódóan, hogy egy programot tudsz a távoli gépen futtatni, a lehetôségek határtalanok. Van telnet site, ami adatbázisokhoz ad hozzáférést,kereshetsz benne, rendezheted, bôvítheted. Van, ahol egy élô beszélgetésbekapcsolódhatsz be. Többszereplôs, világméretû játékokat játszhatsz, újságokatolvashatsz, szavak helyesírását ellenôrizheted, szinonímákat kérhetsz hozzájuk, és mivel vannak nálam kreatívabb emberek is, amit akarsz, aztmegtalálod.” Forrás: http://paloc.index.hu/nethelp/telnet.htm Telnet telepítése: Ahhoz, hogy a telnet müködjön szükségünk lesz pár csomagra amit lekell töltenünk, ezek a következőek: -Telnet -Telnetd -Openssh-client -Openssh-server
A telepítés elvégezhetjük a megszokott módon. apt-get install telnet apt-get install telnetd apt-get install openssh-client apt-get install openssh-server Majd adjuk ki a netstat parancsot. De mire is jó ez a „command”? A netstat paranccsal a protokollstatisztikát és a jelenlegi TCP/IP-kapcsolatokat lehet megjeleníteni. netstat -a megjeleníti az összes kapcsolatot, netstat -r megmutatja az útválasztási táblázatot és az aktív kapcsolatokat. netstat -o megjeleníti a folyamatazonosítókat, így megtekintheti az egyes kapcsolatokhoz tartozó portok tulajdonosait. netstat -e megjeleníti az Ethernet-statisztikát, a netstat -s parancs pedig protokollonkénti bontásban készített statisztikát jelenít meg. netstat -n hatására a cím és a portszám nem alakul névvé. Egyéb használt utasítások és ismeretek: inetd : ezt a démont gyakran csak “internet szuperszerverként” nevezik, mivel a helyi szolgáltatások kapcsolatainak kezeléséért felelős. Amikor az inetd fogad egy csatlakozási kérelmet, akkor eldönti róla, hogy ez melyik programhoz tartozik és elindít egy példányt belőle, majd átadja neki a socketet (az így meghívott program a szabvány bemenetéhez, kimenetéhez és hibajelzési csatornájához kapja meg a socket leíróit). Az inetd használatával úgy tudjuk csökkenteni a rendszerünk terhelését, hogy a csak alkalmanként meghívott szolgáltatásokat nem futtatjuk teljesen független önálló módban. Az inetd démont elsősorban más démonok elindítására használjuk, de néhány triviális protokollt közvetlenül is képes kezelni, mint például a chargen, auth és a daytime. Ebben a fejezetben az inetd beállításának alapjait foglaljuk össze mind parancssoros módban, mind pedig az /etc/inetd.conf konfigurációs állományon keresztül. /etc/services : jelenesteben milyen porton figyelje a beérkező kapcsolatokat, itt a telnet-re ezt találjuk 23/tcp Lépjünk be az /etc/inetd.conf fájlba és irjuk hozzá a telnet-tel kezdődő sorhoz a következőt: host.allow TCP Wrapper host deny vi /etc/inet.d.conf fennt leírt kiegészítés, majd /etc/init.d/openbsd-inetd restart
SSH: Egy hálózati prokoll amivel bejelentkezhetünk hálózaton át egy másik gépre, és az ehhez szükséges hálózati kapcsolat titkosítva lesz(ugye a Telnet-nél ez a biztonság nincs meg). Adjuk ki az ldd parancsot, amely a következőre jó, a programhoz szükséges dinamikus könyvtárakat listázza.Próbáljuk is ki. ldd 'which sshd' Majd gyakorlás képpen nézzük meg az ssh log fájlait, amelyek itt találhatóak /var/log/auth.log more /var/log/auth.log Most pedig próbáljuk ki az ssh-t.Lépjünk be először user-ként, majd váltsunk át superuser-ré,hogy az su saját környezetét használjuk.Ha még nincs felhasználónk csak a root csináljunk is egyet az adduser parancsal, utána pedig nézzünk meg az a „IP”-nket és oda ssh-ázzunk be. add user ifconfig -a ssh user@adottipcim su Most pedig lépjünk is ki innen és nézzük meg a mit tartalmaz a /etc/ssh könyvtár.Nyissuk meg és szerkesszük az sshd_config fájlt, még pedig a következő módon: Találunk egy ilyen sort, PermitRootLogin yes , nos nincs más dolgunk mint a yes-t no-ra változtatni, majd „újrainditani” az ssh-t.Ennek a változtatásnak a kövekeztében nem fog root-ként senki ssh-zni. cd /etc/ssh ls -l vi /etc/ssh/sshd_config /etc/init.d/sshd restart ,ezt követően tapasztalhatjuk, hogy megtagadja a belépést, ha root-ként próbálunk ssh-zni. Visszaállítása egyértelmű ismét módosítjuk az előbb fájlt, de most a no helyett irunk yes-t és újraindítjük az ssh-t.
MYSQL: TanárÚr jegyzetében megtalálható minden ami gyakon vettünk(a 62. oldaltól kezdődően). A Jegyzet elérhető itt: http://rszt.pmmf.hu/uploads/10/d4/10d48cb35595fc30551653db07ab9e7f/kiszolg-2010-09-27.pdf
Kiegészítés: (A TanárÚr azt mondta, mindeképpen kell majd használni a gyakoralti zh-n)
A vi: A vi egy szabványos UNIX szövegszerkesztő, amely valamennyi UNIX rendszeren megtalálható. Nyilvánvaló tehát, hogy mindenképpen érdemes megismerkedni legalább az alapszintű használatával, hiszen bárki kerülhet olyan helyzetbe, hogy semmifélé egyéb editor nem áll rendelkezésére. Indítása: Nincs más teendő mint begépelni a vi-t a parancssorba. vi
Parancsok: h-j–k- l:
A kurzor mozgatása balra, jobbra, fel, illetve le.
w–W–b–B: Előreugrás ('w' és 'W') vagy hátraugrás ('b' és 'B') szavanként. A 'w' és 'b' minden nem-alfanumerikus jelet szóhatárnak tekint; a 'W' és 'B' csak a white space karaktereket. }{
Ugrás az aktuális vagy előző paragrafus végére
)(
Ugrás az aktuális vagy előző mondat végére
G A megadott sorra ugrik, pl. a "100G" a századik sorra. Ha nem adunk meg számot, az utolsó sorra ugrik . ^
Az adott sor első nem-üres karakterére ugrik
$
Az adott sor végére ugrik
0
Az adott sor elejére ugrik
a
Bevitel a kurzor utáni pozícióba
A
Bevitel az aktuális sor végére
i
Beszúrás a kurzor előtti pozícióba
I
Beszúrás az aktuális sor elejére
o
Üres sor beszúrása és bevitel a kurzor alatti sorban
O
Üres sor beszúrása és bevitel a kurzor feletti sorban
x vagy dl
A kurzor alatti karakter törlése
X vagy dh
A kurzortól balra lévő karakter törlése
dw
Szó törlése
dd
Sor törlése
D vagy d$
Sor törlése a kurzortól a sor végéig
dG
Törlés a kurzortól a fájl végéig
:w
A fájl mentése
:w név
A fájl mentése név néven
:q
Kilépés mentés nélkül
:wq vagy ZZ
Kilépés mentéssel
A fontosabb és használt könyvtárak,fájlok azaz „mi? hol? merre?”: /bin /sbin /etc /lib /lib/modules /dev /tmp /boot /mount /usr
Bootoláshoz szükséges parancsok, amelyeket a felhasználók is használhatnak Mint a /bin, de a felhasználók nem használhatják Konfigurációs könyvtár Osztott könyvtára a programokhoz Kernel modulok Eszköz fájlok Időleges fájlok helye Kernel fájl,bootloader,általában külön partíció,hogy az első 1024 szekt.essen Mountolási pontok Parancsok,dokumentációk-normál üzem alatt nem változtatható fájlok
/usr/bin /usr/sbin /usr/man /usr/info /usr/doc /usr/include /usr/lib /usr/local
Felhasználói programok Rendszeradminisztrációs programok,melyek nem kellenek a gyökérbe Dokumentáció Dokumentáció Dokumentáció Fejléc fájlok C programokhoz Adat fájlok,könyvtárak Lokális installált szoftverek
/var
Változó fájlokat tartalmaz
/var/spool /var/log /var/tmp /var/run /var/lock
Mail spoolok Naplozó fájlok Ideinglenes fájlok Következő bootolásig érvényes rendszerinformációk Lezáró fájlok.Ezek jelzik, hogy egy eszközt v. fájlt már használják
Debian Linux – Feladat I. A/1. Telepítse fel a Linux disztribúciót a rendelkezésre álló merevlemezre – – – – – – –
Telepítés jellemzők: A /(root) partíció mérete: 5GB A swap partíció mérete: 256 MB v. 512 MB Ne telepítése az irodai csomagokat, csak az alaprendszert A rendszergazda (root) jelszava: password A telepítésnél létrehozandó felhasználó neve: user, jelszava: password Jelentkezzen be root felhasználóként és állítsa be az alábbiakat:
A/2. Állítsa be az operációs rendszer legfontosabb jellemzőit!(jelen esteben tetszőleges, vagy amit használtok) – IP cím,Alapértelmezett átjáró,Névszerver – A gép neve: szerver-x (ahol X tetszőleges)
B. Telepítse, majd indítsa el a Samba és az SSH szolgáltatásokat a szerver-x gépen, és ellőrizze a működését. – A rendszeren indított terminálból jelentkezzen be az SSH szerverre(nálunk lehet a saját szerverünk is) user felhasználóként! – Másolja biztonságosan user felhasználóként az /etc/samba.conf állományt a saját /home mappájába. – Állítsa be a szerver-x gépen a user felhasználó számára a 200MB quotát – Állítsa be, hogy a /szerver-x/proba megosztás elérhető legyen a user felhasználó számára C. Ellenőrízze az elkészített szerver működését a Putty segítségével, melyet „kívülről” inditott el. – Indítsa el a Putty programot, és állítsa be úgy, hogy be tudjon jelentkezni a telepített szerverre! – Az IP címet a kliensen DHCP-vel kapja! – Ellenőrizze a két gép közötti kapcsolat működését
Debian-Linux Feladat II. A/1. Telepítse fel a Linux disztribúciót a rendelkezésre álló merevlemezre – – – – – – – – – –
Telepítés jellemzők: / (root) 3GB Primary /boot 100MB Primary – bootflag on /swap 200MB Primary /home 100MB Logical ez már Extended /valami 200MB Logical ez már Extended Ne telepítse az irodai csomagokat, csak az alaprendszert A rendszergazda(root) jelszava: password A telepítésnél létrehozandó felhasználó neve: user, jelszava: password Jelentkezzen be root felhasználóként és állítsa be az alábbiakat:
A/2. Állítsa be az operációs rendszer legfontosabb jellemzőit!(jelen esteben tetszőleges, vagy amit használtok) – Állítsa be az IP címet és a hálozatot, hogy az megfelelően müködjön – Adja a gépnek a kövekező nevet: KiszolgalokZH-EHA – Állítsa be, hogy a rendszer ne a Cdrom-ről „töltse le” a csomagokat, hanem egy megadott hálózat/netes helyről – Adjon hozzá a rendszerhez egy ZHUSER nevű felhasználót B. További feladatok: – Telepítse a gépre az apt parancs segítségével az ssh-t, majd telepítse a gépre az apptitude parancsa segítségével a telnet-et. – Tilsta le a root számrára az ssh kezdeményezést, a módosított fájlt pedig másolja át egy a /home könyvtárába elhelyezett zh könyvtárba. – Másolja az ssh log fájlait a /home/zh helyre. – Hozzon létre a /home/zh könyvtárban egy route szöveges állományt és irja bele mire jó ez a parancs és lássa el a konkrét példával. – Indítsa el a Putty programot, és állítsa be úgy, hogy be tudjon jelentkezni a telepített szerverre! – Ellenőrizze a két gép közötti kapcsolat működését. – Telepítse a gépre a MSQL-t és hozzon létre egy adatbázist Zh néven, adjon hozzá rekodrokat és felhasználókat a megfelelő jogosultságokkal együtt. – Root-ként küljön egy üzenetet a ZHUSER nevű felhasználónak, KiszolgZH témában és Név,EHA-kód tartalommal. Ezt a két feladatsort Én csináltam magamnak egy kis gyakorláshoz, ezért semmi köze nincs az eddigi ilyen jellegű zh-khoz és lehet nem is lesznek hasonló feladatok!!
Parancs jegyzék apt-cache
- keresünk,lekérdezünk a segítségével
pl: apt-cache show util-linux
apt-get parancsok: ~ install ~remove ~update
- telepíthetünk csomagokat - törölhetjük a feltett csomagokat - frissíti a rendszert, hibakeresést ezzel kezdjük
pl: apt-get install man pl: apt-get remove man pl: apt-get update
alias
- Parancsokat saját elképzeléseink szerint átnevezhetünk.
Pl: alias Leállítás='shutdown -h now'
aptitude
-csomagok telepítésében segít
pl: aptitude
cat
- A teljes file tartalmának kinyomtatása
pl: cat /etc/mtab
cd
- könytár váltása
pl: cd home
cd ..
- visszalépés a struktúrában
pl: cd ..
cfdisk
- Lemezkezelő, partícionáló
pl: cfdisk
dd
- ”valahonnan másol, valahova ír”
pl: lásd feljebb...
df
-
pl: df -H
dpkg
- apt-hez hasonló parancs
du
-megadja az állományok, könyvtárak által használt területet a merevlemezen pl: du -H
egrep
- a mintát vehetjük egy állományból is
pl: egrep -f pattern szoveg
fdisk
- lemezkezelés
pl: fdisk /dev/sda
find
- fájl keresése
pl: find valami
free
- megjeleníti a rendszer által használt, illetve a szabad memória méretét
pl: free
grep
- Minta keresése file-ban
pl: w | grep "$USER"
gzip
- Tömöritésre használhatjuk
pl: gzip tar.foo
gunzip
-Kitömörítésre használhatjuk
pl: gunzip tar.foo.gz
halt
- gép leállítása
pl: halt
ifconfig
- hálozati paraméterek
pl: ifconfig -a
ifdown
- interface „lehúzása”
pl: ifup eth1
ifup
- interface „felhúzása”
pl: ifup eth1
megjeleníti a fájlrendszer partíciói által használt lemezterület méretét
pl: dpkg -s /sbin/fdisk
init
- péládul futási szintet válthatunk vele
pl: -
info
-információkhoz juthatunk pl a csomagokról
pl: info finger
ldd
- a programhoz szükséges dinamikus könyvtárakat listázza
pl: ldd 'which sshd'
less
- kilistázza a szöveges állományok tartalmát
pl: less etc/passwd
ls
- segítségével listázunk(plusz param. adhatók)
pl: ls -l
man
- segítség kérése a parancsról
pl: man ls
mkdir
-könyvtár létrehozása
pl: mkdir konyvtar1
mkfs
-fájlrendszer beállítás
pl: mkfs.ext3 /dev/sda3
mkswap
- linux swap terület létrehozása adott eszközön
pl: mkswap /extra-swap 1024
mount
- csatolásra alkalmas
pl: mount /dev/sda3 linux
more
-állományok tartalmának kilistázására használják
pl: more /etc/passwd
nano
-szövegszerkesztő
pl: nano /etc/fstab
ps
- futó processzusokat listázza ki
pl: ps
pwd
- aktuális könyvtár nevének kiírása
pl: pwd
runlevel
- az aktális futási szintet adja meg
pl: runlevel
route
- milyen útvonalon halajdon a csomag
pl: lásd feljebb
shutdown
- leállítás
pl: shutdown -h now
swapon
- a partícion levő swap terület a boot folyamat init részében aktiválódik
pl: swapon
sync
- a lemez-cacheből mindent irjon a merevl.-re
pl: sync
touch
- fájl létrehozása
pl: touch fajl1
tar
- fájlok, könyvtárstruktúrák archiválására, mentésére szolgál
pl: tar foo.tar.gz
tr
- karakter törlése,cseréje
pl: tr „a” „alma”
umount
- lecsatolás
pl: umount/dev/sda3
vi
- szövegszerkesztő
pl: vi /etc/fstab
wget
- fájlokat tölthetünk le a segítségével
pl: wget fájlelérése
which
- A program futtatható állományának elérési útvonalát adja meg
pl: which finger
who
- ki van bejelentkezve
pl: who
Források: http://www.cs.elte.hu/linfo/Shell/script.html#ifelse http://doksi.atw.hu/ http://rszt.pmmf.hu/mernok-info-bsc/rendszermernok-szakirany/kiszolgalok-uzemeltetese http://www.szabilinux.hu/vi/index.html