2015. december 18., péntek

A titkosítás paradigma



Titkosítási rendszerek esetén beszélhetünk szimmetrikus és aszimmetrikus rendszerekről. Az összes klasszikus algoritmus szimmetrikus felépítésű volt. Az aszimmetrikus nehezebben törhető. A feldolgozás lehet stream alapú vagy blokk alapú. A stream alapú titkosítások bitenként, vagy karakterenként míg a blokk alapút fix méretű blokkokként végzi. A legtöbb ma használt algoritmus blokkokban dolgozik sebességbeli megfontolások miatt. Az, hogy blokkban vagy steam-ben dolgozik az algoritmus, ideális esetben nem kellene, hogy hatással legyen a biztonságra. Többféleképpen nekiállhatunk egy kód feltörésének. A legegyszerűbb és legjobban erőforrás pazarló módszer a Brute Force. Ez azt jelenti, hogy az összes lehetséges kombinációt ki kell próbálni. Általában az összes lehetséges kombinációt nem kell kipróbálni a sikeres töréshez, legjobb esetben elég egyszer próbálkozni. Ennek azonban a matematikai esélye ugyan megvan, de nem éppen életszagú eset. Ha egy kicsit gondolkodunk és megvizsgáljuk a visszafejtendő kódot, akkor előállhatunk rafináltabb módszerekkel, amelyek segítségével könnyebben vissza tudjuk fejteni az eredeti információt. Ideális esetben a titkosító algoritmus nem rendelkezik hibákkal és csak Brute Force módszerrel törhető fel. A Brute Force töréshez szükséges idő erősen függ a kódolás bonyolultságától, valamit a töréshez használt gép sebességétől. Éppen ezért fontos kérdés, hogy belátható időn belül feltörhető-e a rendszer vagy nem. A belátható idő fogalma erősen relatív. Éppen ezért jobb kifejezés egy módszer biztonságosságának megítélésére az, hogy megnézzük, számításilag biztonságosnak tekinthető-e. Egy algoritmus számításilag biztonságosnak tekintett, ha a feltöréséhez annyi erőforrás és idő szükséges hogy már ne érje meg kínlódni vele. A caesar titkosítás a legöregebb ismert titkosítási algoritmus. Állítólag Julius Caesar találta fel, azonban ennek a bizonyítására nem sok információ áll rendelkezésre. Az biztos, hogy az ő idejében már ismert volt a módszer. Ez egy betűcserén alapú algoritmus, könnyen törhető. A cserélő algoritmusok lényege, hogy adott betűt egy másikkal helyettesítünk, így kapunk egy értelmetlen szöveget, ami már titkos tartalmú. A törés a betűk ismétlődési gyakoriságán bukik meg. Az ismétlődési statisztika ad választ rá, ezt pedig össze kell hasonlítani egy olyan statisztikával, amely az adott nyelvre vonatkozik. Ennek az elkészítése igen nehézkes tud lenni, ha papír alapon csináljuk, mivel az összes létező szó esetén figyelembe kell venni az ismétlődési valószínűségeket. Viszont ha már van statisztikánk, akkor onnantól kezdve nagyon könnyen visszafejthető a kódolás. Probléma akkor van, ha nem ismerjük a nyelvet, amin az eredeti szöveg íródott. A II. világháborúban az Amerikai Egyesült Államok kormánya ezt a taktikát vetette be titkosítás terén. A navaho indiánok tagjait toborozták be titkosításra. A törzs tagjai olyan anyanyelvvel rendelkezek, amelyet csak egy tucat ember beszélt a legjobb esetben. A módszer igen hatékonynak bizonyult, mivel nem tudták visszafejteni a kódot az ellenfeleik. A xor alapú titkosítás a Boole algebra XOR műveletének következő azonosságain alapul:

  1. 5×5-ös mátrix rajzolása az ABC számára
  2. ABC beírása, ez lesz a kulcs
  3. Maradék hely kitöltése egyéb betűkkel
  4. A példa kulcs:
    PALME
    RSTON
    BCDFG
    HIKQU
    VWXYZ
  5. A titkosítandó szöveg felbontása két karakteres párokra.
  6. J betűk cserélése I betűkre
  7. Ha a két karakteres pár mindkét karakterje azonos, akkor kitöltő karaktert kell alkalmazni, ami: x
  8. Ha a szöveg végén kell még betű a két karakteres párhoz, akkor Z betűt kell alkalmazni
  9. Ezután szöveg titkosítása a következő szabályok betartásával:
    1. Ha két karakter ugyanabban a sorban szerepel az ABC táblában, akkor a karakter mellett jobbra található karakter lesz használva (körkörösen!).
    2. Ha két karakter ugyanabban az oszlopban szerepel, akkor az egyel alatta lévő karakter lesz használva.(körkörösen!).
    3. Ha a fenti két eset nem áll fent, akkor kereszt cserét kell csinálni.
A XOR B = C C XOR B = A itkosításra ez úgy használható fel, hogy az A változó jelenti az adat egy titkosítandó bitjét, B a hozzá tartozó kulcs egy bitjét, C pedig a kimenetként kapott titkosított bitet. Az algoritmus rém egyszerű, és megfelelő használattal megfelel a feltétlen biztonság tételének. Ez azt jelenti, hogy nem számít, hogy a támadónak mennyi ideje és erőforrása van, sosem fogja tudni kinyerni a kulcsból vagy a titkosított adatból az eredeti üzenetet. A feltétel csupán annyi, hogy a kulcs ugyan olyan hosszú legyen, mint a titkosítandó adat, és véletlenszerűen generált legyen. Ha a kulcs rövidebb a titkosítandó adatnál, akkor a kimeneti bitsorozatban a kulcs ismétlődni kezd, ami némi erőfeszítéssel igen könnyen kinyerhető. Ebben az esetben a titkosítás egyáltalán nem biztonságos. Ugyanez a helyzet áll fent, ha a kulcs nem véletlenszerűen választott. Hátránya a módszernek, hogy 10GB adat titkosítása ezzel a módszerrel 10GB kulcsot és 10GB titkosított adatot generál, amit célszerű külön helyeken tárolni. A playfair titkosítás a Caesar titkosítás és általánosított formái esetén a relatíve nagy kulcstér sem nyújt elég védelmet. Ezt nagyjából az 1800-as években már tudták. Viszont akkor még nem voltak számítógépek, így az e fajta titkosítások ugyan megtörhetőek voltak, de jelentős időt vettek igénybe. A problémát Charles Weastone oldotta meg 1854-ben, de a barátja, Playfair báró után kapta nevét az általa kifejlesztett algoritmus. Ez a bemeneti adatot nem betűnként kezelte, hanem blokkokban. Több lépéses algoritmus, amelynek a működését egy példán keresztül lehet a legjobban szemléltet 
A kereszt cserét egy példán keresztül a legkönnyebb elmagyarázni. A kulcs alapján a BD karakterpár a KH párra fordul, mivel a B betűhöz a D betű alatt lévő karaktert kell rendelni, a D betűhöz pedig a B alattit.

Abban az esetben ha a sor vagy oszlop egyezik, akkor a példa kulcs alapján az AM pár LE-re fordul, ME pedig EP-re. RH pár BV-re, a HV pedig VP-re.

A fenti szabályok ismeretében a következő szöveget titkosítom: Lord Granville’s letter

A karakterpárok bontás után a szöveg így néz ki: lo rd gr an vi lx le sl et te rz

A titkosítás után a kész üzenet: MT TB BN ES WH TL MP TA LN NV

A titkosított üzenet visszafejtése a kulcs ismeretében és a szabályok fordított alkalmazásával lehetséges.

A titkosítás kulcs tere 26 x 26 karakter, vagyis 676 karakter egy üzenet esetén. Valaha feltörhetetlen kódnak hitték, de mint kiderült, fel lehet törni, mivel a módszer néhány betűismétlődést és összetett szót figyelmen kívül hagy. Széles körben használt volt az I. és II. világháború alatt az amerikai és brit hadsereg által. A polialfabetikus titkosítás már több ABC variációt alkalmaz, mondhatni a betű cserés algoritmusok továbbfejlesztett változatai az ebbe a családba tartozó titkosítások. A legegyszerűbb ilyen algoritmus a Vigenère titkosítás. Tételezzük fel, hogy adott az összes Caesar ABC variáció az abc összes betűjéhez. Ezeket jelöljük a következőképpen: { Ca, Cb, Cc, …, Cz } A választott kulcs legyen a biztonsag szó. Az ABC variációk és a kulcs ismeretében a titkosított szöveg a következő formában fog előállni: Cb, Ci, Cz, Ct, Co, Cn, Cs, Ca , Cg. Ha a szöveg hosszabb, mint a kulcs, akkor a kulcsot ismételni kell. Ezen módszer azért jó, mert minden betűhöz több titkosított betű tartozik, így a betűk ismétlési statisztikái majdhogynem használhatatlanok, viszont ez nem jelenti azt, hogy a módszer feltörhetetlen.

A törés menete:
Ki kell találni a kulcs hosszúságát
Ha a kulcs hosszúsága N, akkor az algoritmus N Caesar titkosítást használ. K pozícióban lévő és N+k, 2N+k, valamint 3N+k betűk ugyanazzal a módszerrel vannak titkosítva.
A különálló Caesar kulcsok törése a Caesar algoritmusnál említett módon lehetséges.

Gyakorlatban ezt a titkosítást elektromechanikus titkosító gépekkel valósították meg. Ilyen volt a németek által a második világháborúban alkalmazott Enigma gép is. Ennek a hadi változata 10 elektromechanikus tárcsát alkalmazott, ami 10 karakteres kulcsot jelentett. Ebben az esetben egy üzenet esetén 26^10 kulcs kombináció lehetséges, ez másképpen leírva 141 167 095 653 376 kombináció. Az 1940-es években ez akkora kombinációnak számított, hogy az algoritmust feltörhetetlennek nevezték. Azonban sikerült feltörni, az említett feltörési módszerrel és némi gépi erővel. A gépi erőt nevezték Turing bombának, amely nevét Alan Turing matematikusról kapta. Többek között az ő nevéhez fűződik a Turing gép, ami a mai számítástechnika alapját képezi.
Fogalmak:

Plaintext
Egyszerű szöveg, ami tikosításra kerül.
Ciphertext
Titkosított szöveg, amit algoritmus állít elő a bemeneti szövegből.
Encryption, titkosítás
A folyamat, amely létrehozza az egyszerű szövegből a titkosított szöveget.
Titkosító algoritmus
A titkosítás műveletsora. Mindig két bemenete van: titkosítandó szöveg és titkosító kulcs.
Visszafejtés, Deciphering, Decryption
Folyamat, amely során titkosított szövegből egyszerű szöveg lesz.
Visszafejtő algoritmus
Visszafejtés műveletsora. Két bemenete: titkosított szöveg és titkosítást feloldó kulcs.
Titkos kulcs
Titkosító és titkosítást feloldó kulcs elnevezése, ha megegyeznek. Szokás szimmetrikus kulcsnak is nevezni.
Kriptográfia, Cryptography
Titkosításokkal foglalkozó tudomány.

2015. december 16., szerda

The Cat and the Mouse

The cat and the mouse PIay'd in the malt-house: The cat bit the mouse's tail off. 'Pray, Puss, give me my tail.' 'No,' says the cat, 'I'll not give you your tail, till you go to the cow, and fetch me some milk.' First she leapt, and then she ran, Till she came to the cow, and thus began: 'Pray, Cow, give me milk, that I may give cat milk, that cat may give me my own tail again.' 'No,' said the cow, 'I will give you no milk, till you go to the farmer, and get me some hay.' First she leapt, and then she ran, Till she came to the farmer, and thus began: 'Pray, Farmer, give me hay, that I may give cow hay, that cow may give me milk, that I may give cat milk, that cat may give me my own tail again.' 'No,' says the farmer, 'I'll give you no hay, till you go to the butcher and fetch me some meat.' First she leapt, and then she ran, Till she came to the butcher, and thus began: 'Pray, Butcher, give me meat, that I may give farmer meat, that farmer may give me hay, that I may give cow hay, that cow may give me milk, that I may give cat milk, that cat may give me my own tail again.' 'No,' says the butcher, 'I'll give you no meat, till you go to the baker and fetch me some bread.' First she leapt, and then she ran, Till she came to the baker, and thus began: 'Pray, Baker, give me bread, that I may give butcher bread, that butcher may give me meat, that I may give farmer meat, that farmer may give me hay, that I may give cow hay, that cow may give me milk, that I may give cat milk, that cat may give me my own tail again.' 'Yes,' says the baker, 'I'll give you some bread, But if you eat my meal, I'll cut off your head.' Then the baker gave mouse bread, and mouse gave butcher bread, and butcher gave mouse meat, and mouse gave farmer meat, and farmer gave mouse hay, and mouse gave cow hay, and cow gave mouse milk, and mouse gave cat milk, and cat gave mouse her own tail again.


2015. december 14., hétfő

Ompetitiveness

During the economical crisis, management of more and more corporations recognises that learning organisations can significantly improve their  ompetitiveness. the organisational learning I deal with organisational forgetting, achievement of organisational learning, and the concept of one-loop learning and two-loop learning. Based on Senge I sketch the principles of learning organisations: working up of image of a common future, personal direction, thought patterns, group learning and system thinking. Next I analyse the participants of learning organisations in the process of learning. In the course of this I show the difference between concepts of Garvin and Senge and learning-types, featuring the learning organisations: single learning, team learning, organisational learning and the consumer learning. I addition I deal with dilemma of measurement of learning organizations and building up of learning organisations and the tasks of leaders. Summarised you can say that learning organisation is a strategic concept when putting it into practical all the sources of the organisation are needed, all the participants have to latch onto it, and thanks to it the innovation level and the commitment of the employees of a corporation will improve.

2015. november 26., csütörtök

Rearm parancs használata profiknak

Először is. Le kell szögeznem azt, hogy ezt csak akkor használd, ha lejárófélben van a 30 napod, tehát az ilyen 2-3 nap aktiválásig már annak számít.
Ilyenkor fogod magad, beírod a start menü keresőjébe azt, hogy cmd, majd futtatod rendszergazdaként, és beírod szigorúan az alábbi parancsot:
slmgr.vbs -rearm
3-szor lehet megismételni. Vagyis a 30 napon kívül, még kapsz 3*30 napot… ha 120 napig használod a rendszert… lehet gondolkozni, hogy mi az ördögöt csináljunk, ha véletlenül nem ment volna még tönkre. Nem fog tönkremenni sosem a Windows 7, de hát Windows… mindenre fel kell készülni…

30 NAPOS HOSSZABBÍTÁS: 
 
Windows Vista/7 alatt lehetőség van
parancssorból módosítani a licensszel kapcsolatos dolgokat az slmgr.vbs
fájllal. Hogy milyen parancsok is vannak? Most megtudhatod őket.
Első dolgunk hogy megnyitjuk a Windows parancssorát. Vagy a Start menü
Kellékekben találjuk meg, vagy a keresőbe írjuk be hogy cmd, de talán a
legegyszerűbb mód a megnyitására a Start gomb+R és a megjelenő ablakba
beírni hogy cmd. Akkor nézzük is meg milyen parancsokat is vannak:
slmgr -dli : megmutatja a licensszel kapcsolatos információkat, az
aktiváció státuszát illetve a termékkulcs utolsó 5 karakterét.
slmgr -dlv : itt is a licensszel kapcsolatos információkat nézhetjük
meg, de most a -dli parancshoz képest sokkal bővebben.
slmgr
-ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx : új termékkulcsot adhatunk meg, a
régit ezáltal felülírva. A xxxxx-xxxxx-xxxxx-xxxxx-xxxxx helyére kell
beírni az új termékkulcsot.
slmgr -xpr : megmutatja hogy még
mennyi idő van hátra a Windows aktiválásáig, feltéve hogy még nem
aktiváltuk azt.
slmgr -upk : eltávolíthatjuk a termékkulcsot, és
visszatérhetünk a 30 napos türelmi időre.
slmgr -ato : aktiválja a
termékkulcsot és a licenszet a Microsoft szerverén.
slmgr -skms
aktivációszervernév:port : a KMS szerver és a portot (pl. :
192.168.1.1:8068) adjuk meg hogy a KMS (mennyiségi licenszhez kell,
minimum 25 gép) aktiváció létrejöhessen Vista Business és Vista
Enterprise esetén.
slmgr -ckms : visszaállítja a KMS szerver
nevét és portját az alapra.
slmgr -rearm : visszaállítja a
türelmi időt, ha még nem aktiváltuk volna a rendszert (maximum 3-szori
alkalom, tehát 120 nappal tolhatjuk ki a rendszer aktiválását).
Ha error-t ír a parancssor, vagy nem működnek a parancsok, akkor próbáld
meg a parancssort adminisztrátorként futtatni (Jobb egér a parancssora,
majd futtatás rendszergazdaként), ha még mindig nem menne, akkor lépj a
C:windowssystem32 mappába az alábbi módon : írd be a parancssorba a
cd majd a cd windowssystem32 parancsot.
1 ÉVES HOSSZABBÍTÁS:
Windows 7 alatt lehetőség van az aktivációs időszak meghosszabbítására
akár 120 nappal is, az ismert slmgr -rearm segítségével. Viszont egy kis
módosítással a regisztrációs adatbázisban ez akár kinyújtható 1 évre
is, az alábbi leírás segítségével.
Ha már “elhasználtunk” az
összes slmgr -rearm lehetőséget (120 nap), akkor hajtsuk végre az
alábbiakat:
1. Nyissuk meg a regisztrációs adatbázis
szerkesztőjét: Winjel + R majd a megjelenő ablakba írjuk be a regedit
parancsot. Ha az UAC be van kapcsolva, akkor hagyjuk jóvá a megjelenő
ablakot.
2. Menjünk az alábbi helyre a regisztrációs
adatbázisban:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
NTCurrentVersionSoftwareProtectionPlatform
3. A SkipRearm
duplaszó típusú kulcsot nyissuk meg és az eredeti 0 értéket írjuk át
1-re.
4. Végezzük el újból a jól ismert 30 napos hosszabbítást
(slmgr -rearm).
Ha megint letelik a 30 napos idő, hajtsuk végre az 1. ponttól ismét a
leírt műveletet, maximum 8-szor lehetséges ez.

2015. november 25., szerda

Debián telepítése és beállítása



A telepítés után ajánlatos parancsok.:
dpkg-reconfigure debconf
# Ha a lehetőségek közül a low-t "alacsonyt" választjuk, a későbbi programok (repository-ból történő)
# telepítésekor minden apró részletre, beállításra rákérdez a rendszer. Ajánlatos.
apt-get update
apt-get upgrade
# A rendszer frissítése. (a tárolók (repository) az /etc/apt/sources.list file-ban vannak megadva.)
Sok keresgéléstől kímélhetjük meg magunkat, ha a következő parancsokat elsajátítjuk.:
man parancs
# A parancs manual oldalait nyitja meg, rövid, tömör, célratörő leírás
man -k szó
# Az apropos program kimenete
apropos szó
# Minden olyan parancsot megad, mely manual oldalaiban szerepel a "szó"
parancs --help
# Információ a "parancs" használatáról
info parancs
# Információ a "parancs" használatáról
whatis parancs
# Egysoros az parancsról.
whereis parancs
# Hol is van a parancs?
which parancs
# A program futtatható állományának elérési útvonalát adja meg (általában /usr/bin)
# böngészőbe írva, a legtöbb telepített program leírását megtalálhatjuk
# (általában html formátumban is)
Fontos! Nem minden (a leírásban felsorolt) parancs tartozéka egy alaprendszernek, előfordulhat hogy telepítenünk kell.
Könyvtárszerkezet top
/ # A hierarchikus könyvtárfa kiindulópontja (gyökér könyvtár)
/boot # A rendszer indításához szükséges állományok helye (grub, vmlinuz, stb)
/bin # A futtatható parancsok könyvtára -binaries
/sbin # A rendszergazda parancsai -superuser bin
/lib # Az induláshoz szükséges osztott rendszerkönyvtárak -libraries
Továbbá tartalmazza a rendszerhez csatolható modulokat, meghajtóprogramokat
/dev # A rendszerhez csatlakozott, csatolható különleges állományok -devices
/etc # Beállítófájlok, helyi indító parancsok, jelszavak, hálózati-beállítók, etc. helye.
/home # Minden felhasználó saját könyvtára itt foglal helyet. (Otthon, édes otthon)
/mnt # A felcsatolt (mountolt) perifériák könyvtára. -mount
/proc # Itt láthatjuk, ahogy a rendszerünk "él és lélegzik". (szellem a gépben) -process information
Érdemes tüzetesebben átnézni, hiszen érdekes dolgokat találhatunk itt.
pl.: /proc/cpuinfo fájl kiíratásával információt kapunk processzorunkról.
/root  # A rendszer gazdájának könyvtára.
/tmp # Ideiglenes adatok tárolására használt könyvtár. -temp
/usr # Alkalmazások, rendszereszközök tömkelege, a legforgalmasabb könytár. (pl X Window)
/var # Változó adatokat tartalmazó állományok könyvtára. /pl.: nyomtatási munkák, levelek, etc)
/var/log : napló fájlok, különös jelentőséggel bírnak a rendszer biztonságának szempontjából
Állománykezelés top
alias
# Különböző parancsokat saját elképzeléseink szerint átnevezhetünk.
# /home könyvtárunk .bashrc fájlja tartalmazza beállításainkat.
alias rm='rm -i' : A törlés parancs kiadása után rákérdez, hogy valóban akarjuk e. Ajánlatos!
unalias
# Az előzőekben beállított értékek visszaállítása. (törli a .bashrc-ből.)
cat
# Fájl tartalmát írja ki.
> fájl : várja a bemenetet, amely a "fájl" tartalma lesz
-n fájl : beszámozza a fájl sorait
cd
# Könyvtár váltás parancs.
cd : /home könyvtárunkba jutunk
cd .. : egy könyvtárral feljebb kerülünk
chmod
# Fájlok-, könyvtárakra vonatkozó jogokat állíthatjuk be
-R : Rekurzívan változtatja meg a jogosultságokat.
# DAC (háromszintű diszkrécionális maszk) szerinti beállítás.
# r-read (olvasás), w-write (írás), x-executable (futtatás) jogot jelent
#
# tulajdonos (jele:U) | csoport felhasználó (jele:G) | mindenki más (jele:O)
#         rwx         |            rwx               |          rwx
#
# Adjuk ki az ls -la parancsot és máris világossá válik a dolog.
# A sor elején található "d" a directory, "-" a file jele.
#
# Jogokat számokkal, vagy szimbólikus jelekkel határozhatunk meg.
# Számokkal.: 4-write, 2-read, 1-executable jog, összeadva, külön U,G,O-nak
chmod 777 file : UGO-nak egyaránt minden jog.
chmod 751 file : U-nak minden, G-nek írási, futtatási, O-nak futtatási jog.
# Betűkkel.: kinek+mit
chmod u+rwx file : Tulajdonosnak (U) r,w,x jog adása.
chmod g+rx file : Csoport felhasználónak (G) r,x jog adása.
chmod a-rwx : Mindenkitől (A-all) elveszünk minden jogot.
chown
# Fájlok, könyvtárak tulajdonosának (létrehozójának változtatása)
-R : Rekurzívan változtatja meg a tulajdonos(oka)t
-f : Nem kapunk vissza hibaüzenetet, ha valami nem sikerült
--no-dereference : Szimbólikus linkeknél, a link jogosultságait állítjuk
--dereference : Szimbólikus linkeknél, a file (amire a link mutat) jogait változtatjuk
chgrp
# Fájlok tulajdonosi csoportjának megváltoztatása
-R : Rekurzívan változtatja meg a csoportokat
-f : Nem kapunk vissza hibaüzenetet, ha valami nem sikerült
-c : csak azokat a file-okat írja ki, amelyeknek valóban megváltozott a csoportjuk
lsattr
# Fájlok, könyvtárak attribútumát mutatja meg
-R : Rekurzívan mutatja meg az attribútumokat
-a : minden file-t kilistáz, beleértve a .-al kezdődőeket is
chattr +tulajdonság file
# Fájlok, könyvtárak attribútumát változtatja
# Tulajdonságok.:
A : Nem változtatja meg a fájlok utolsó módosításának dátumát. (rendszergyorsító hatás)
a : Csak hozzáfűzni tudunk a fájlhoz
c : Autómatikusan tömörítve kerül a lemezre, és kitömörítve kerül beolvasásra
d : Ezekről az állományokról nem készül biztonsági másolat a dump parancs futtatásakor
s : Paranoia mód. Törléskor azonnal megsemmisül minden bit-je.
S : Minden változtatás azonnal lemezre íródik (sync hatás)
u : A Fájl törlésekor az adat megmarad, később visszaállítható
cfdisk
# Lemezkezelő, partícionáló
cp -r /honnan/mit /hova/milyen_néven
# Fájl, könyvtár másolás
cmp file1 file2
# Összehasonlítja a file1 és file2 fájlok tartalmát
cut
# Bement (stdin), vagy paraméterként megadott fájl minden sorának egy megadott
# részét vágja ki
-c2 fájl : második mező értéke
-c3,5 : harmadik, ötödik mező, sorrend nem számít
-c-4,6- : negyedik mezőig és a hatodiktól
diff -u file1 file2 > eredmeny
# Összehasonlítja a fájlok tartalmát, a különbséget pedíg az eredmény-be írja
du
# Az aktuális könyvtár fájljainak méretét adja meg
df
# Szabad terület számítása, partíciónként
-H : Megabyte, Gigabyte-okban írja ki
echo szoveg
# Kiírja a képernyőre a szoveg-et
echo szoveg > file : a szoveg-et file-ba írja
echo VegyEs | tr  a-z A-Z : a VegyEs szóban felcseréli a kis és nagybetűket
echo egyesek | tr -d e : az egyesek szóból kiveszi az e betűket
find
# Keresés
find / -name "*.jpg" -print : az összes kép keresése a gyökérben, majd az eredmény kiírása
find / -iname ... : kis és nagybetű különbség nincs!
find -perm 777 : minden 777-es joggal rendelkező állomány keresése
find -perm 4000 : Az összes SUID joggal rendelkező állományt keresi
find /home -size +1024 : 500kb-nál nagyobb állományok keresése a /home-ban
find -type "kapcsoló" : különböző típusú fájlokat keres
-type l : szimbólikus link
-type d : könyvtár
-type f : fájl
find /etc -empty -maxdepth 1 -printf "%p-%m\n" : az /etc könyvtárban lévő üres könyvtárakat
írja ki, a jogosultságaival együtt.
find /home -size +1024 \( -mtime +365 -o -atime +365 \) -ls -exec file{} \; :
512kb-nál nagyobb,maximum 365*24 órája módosított állományokat, valamint a file parancs kimenetét
-exec file{} \; jelenti, hogy az exec után levő parancsnak adja át az eredményt.
file sajt
# megvizsgálja a sajt fájl típusát
-f filelista : Egy létező filelista állományban felsorolt file-okat vizsgálja meg
-L : Követi a szimbólikus link kötést (nem a linket, hanem az arra mutató file-t vizsgálja)
fsck
# lemezellenőrző
fgrep
# Fájlokban, vagy stdin-ben keresek szöveget
"abc" file.txt : Megkeresi az összes olyan sort a file.txt-ben, ami tartalmat "abc"-t
grep
# Szövegrészleteket keres fájlokban, valamint a kimenetben.
-i : nem tesz különbséget kis és nagybetűk között
-l : nem az elűfordulási sorokat, hanem csak a fájl neveket listázza
-v : azoakt írja ki, amiben nem szerepel a keresett szó
# szóközt grep szó" "szó2 -vel ábrázolunk
head
# Szűrő eszköz. A fájl első 10 sorát írja ki
-n-7 fájl : utolsó 7 sort már nem írja ki
-c4 fájl1 fájl2 : mindkét fájl első 4 karakterét írja ki
tail
# Szűrő eszköz. A fájl utolsó sorait írja ki.
-n+2 fájl : A fájl tartalmát a második sortól mutatja meg
tail -n+3 fájl | head -n1
vagy
head -n3 fájl | tail -n1
# Egy fájl harmadik sorát így írhatjuk ki
mc
# Midnight Commander fájlkezelő
mcedit
# Az mc szövegszerkesztője
install
# Fájlok másolása, attribútumok módosítása
less
# Szűrőprogram fájlok adatainak megjelenítéséhez.
ls
# A könyvtárstruktúrát jelenít meg
ls -lt : méret szerint sorrendben
ls -ls : utolsó módosítás szerint sorrendben
ls ??????? : minden 7 karakteres állományt jelenít meg
ls -a : a rejtett fájlokat is kiírja
ls -r ? fordított sorrendben írja ki. pl.: -nr : ABC fordított sorrendjében
ls [aes]? : azokat a 3 betűs fájlokat, melyek középső betűje a,e,s közül bármelyik
ls [nm]* :  azokat a fájlokat melyek n,m betűvel kezdődnek
ls *c : amelyek c-betűre végződnek
ls [^s]* : amely fájlok nem s-el kezdődnek
ls I szó : kilistázza a könyvtár tartalmát, de a szó-t kihagyja
lsof
# Nyitott fájlok kilistázása
-p pid : Folyamat azonosító szerinti szűrés
| egrep ":port1|:port2" : A megadott portokat használó fájlokat listázza ki
lspci
# Hardver információk
-v : bőbeszédű
-vv : még bőbeszédűbb
lsusb
# Usb eszközök kiíratása
lshw
# Hardver információk, kicsit bővebben
-X : Grafikus felületű eredmény
-html : HTML formátumban menthetjük a kimenetet
-short : Az eszközök fa-szerű megjelenítése
mv
# Fájlokat könyvtárakat mozgat, vagy nevez át
-i : A módosítások előtt rákérdez, hogy valóban akarjuk-e
-U : Nem mozgatja az újabb (módosítás dátuma szerint) célfájlal rendelkező állományokat.
-f : force, a célfájlok törlése, kérdés nélkül
mkfs
# Fájlrendszer létrehozása
-t filesystem eszköz [blokkméret]
-t ext2 -V /dev/eszköz : ext2-es fájlrendszer létrehozása
slocate -u
# A hdd tartalmáról készít adatbázist.
-e könyvtár1 konyvtár2 : könyvtárakat tudunk kivenni az adatbázisból
locate fájl
# Az előzőekben létrehozott adatbázisban megkeresi a fájl-t. (Azonnal meg van az eredmény)
ln -s
# Soft link-et hoz létre
-s fájl1 fájl2 : fájl1 ről készít fájl2 nevű soft-link-et.
mkdir -t ext2 /dev/ram0 4096
mount /dev/ram0 ramdisk/
# 4Mbyte os ramdisk-et hozunk létre, és felcsatoljuk.
mount
# Eszköz felcsatlakoztatás (CD,partíció, pendrive, hdd, etc.)
-o loop cdimage.iso./cd-rom : cdimage.iso felmountolása megtekintésre. (kell cd-rom könyvtár)
/dev/hda2 /mnt/vinyo : hda2-es eszközt csatolja fel a vinyo könyvtárba (létre kell elötte hozni!)
-o noatime /dev/hdX : noatime attribútummal csatlakoztatja a lemezt. (I/0 művelet csökkentés!)
umount /dev/eszköz
# Lecsatlakoztatás
pwd
# Kiírja az aktuális könyvtárat
recode
# file karakterkódolásának konvertárálása
iso-8859-15..utf8 modositando_file : Nyugat európai kódolás konvertálása UTF8-ra
rmdir
# Könyvtár törlés
rm
# Állományok eltávolítása
-d : könyvtárat
-i : rákérdez a törlés előtt (Ajánlott!)
-rf : Könyvtárstruktúrát töröl (akkor is, ha nem üres)
sed
# Stream editor, folyamatszerkesztő. A bemenetet a kimenetre másolja miközben megszerkeszti.
echo "hablabda"  | sed 's/a/K/g' : kimenete.: hKblKbdK, azaz "a" betűket "K"-ra cseréli
'/ *#/d; /^ *$/d' file : a file-ból kiszűrjük a kommenteket, üres sorokat.
sort
# Sorba rendezés
-b fájl > kimenet : ABC sorrendbe rendezi a fájlt, az eredményt a kimenetbe írja.
-r fájl : fordított sorrendben rendez
-n fájl : a sor elején levő számok szerint rendez
-u fájl : az azonos sorokat cask egyszer írja ki
sync
# A Ramból a merevlemezre még ki nem írt adatok szinkronizálása (Fontos)
touch fájl
# létrehoz egy üres állományt
-t MMDDHHmm fájl : A fájl létrehozás dátumát változtatja meg. MM-Hónap DD-Nap HH-Óra mm-Perc
tree
# Könyvtárstruktúrát írja ki
tar
# Ki-be tömörítő
zxvf file.tar.gz : Kitömöríti a gz-t, majd a tar-t, és egy /file könyvtárba teszi
xvfj file.bzip2 : bzip2-t tömöríti ki
tf mentes.tar : megmutatja a mentes.tar tartalmát
tvvf mentes.tar : részletes listázás, jogok, tulajdonos etc.
uniq
# Több sorból álló szövegben az ismétlődő sorokkal kezd valamit
-c fájl : az egymás utáni azonos sorokból egyet hagy meg, és kiírja a sorok elején
# hogy hányszor ismétlődött az adott sor
vi
# Parancssoros szövegszerkesztő
# Kilépés mentéssel.: ESC, majd :wq
# Kilépés mentés nélkül.: ECS, majd :q!
vi -b +/mikulas fájl
b : Bináris állomány szerkeszthetőségét teszi lehetővé
+/mikulas : a fájl-ban a mukilas kifejezéshez ugrik
wc fájl
# sor, szó, karakter számítása
-m fájl : a fájlban lévő karakterek száma
-c fájl : a fájlban lévő bájtok száma
-w fájl : a fájlban lévő szavak száma
-l fájl : a fájlban lévő sorok száma
which program
# A program futtatható állományának elérési útvonalát adja meg (általában /usr/bin)
Kvóták beállítása
Apt-vel telepítsük a quota csomagot.
quota
# Tároló kvótázás programja
quota -v
# A bejelentkezett felhasználó kvótabejegyzései
quotacheck -uagv
# Végignézi a fájlrendszert, a tárkorlátok adatainak begyűjtése érdekében
# Majd feltölti az adatbázist (aquota.user, aquota.grp)
-u : alapértelmezett
-a : minden fájlrendszer ellenőrzésre kerül
-g : csoportadatok keresése
-v : verbose, bőbeszédü
quotaon -augv
# kvóták bekapcsolása
quotaoff -av
# kvóták kikapcsolása
repquota -av
# megtekinthetjük  felhasználónként a kvótabejegyzéseket
edquota -u user
edquota -g group
# Felhasználó, csoport kvóták beállítása
# Alapértelmezett szerkesztőnk átmeneti állományaként állíthatjuk be
# Ezért érdemes: export EDITOR=kedvenc_szerkesztőnk -et beállítani.
-p user user2: user2 kvótáit állítja be, user mintájára
/etc/fstab file-ban, az adott partícióhoz meg kell adnunk az options-ba a usrquota, grpquota kapcsolókat.
Rendszeradminisztráció top
login
# Bejelentkezés
logout
# Kijelentkezés
who
# Bejelentkezett felhasználók kiíratása
whoami
# Milyen néven is jelentkeztünk be?
users
# Kiírja az rendszeren levő felhasználók nevét
adduser
# Új felhasználó létrehozása (felhasználóbarát)
useradd
# Új felhasználó hozzáadása
# Ha opciókat használunk, a user-nevet a sor végére írjuk!
-u szám : felhasználói azonosító megadása (UID)
-g csoport : csoport tagság beállítása
-G csooport1,csoport2 : vesszőkkel elválasztva, ha egyéb csoportnak is tagja a felhasználó
-m -k /home/letezo_user uj:user : egy létező felhasználó mintájára építi fel az új user home-ját.
Minden fájl és könyvtár is belekerül a fiókba, + a beállítások is.
usermod
# Felhasználói fiókok módosítása
-u érték user : a felhasználó azonosítóját változtatja (UID)
-g csoport user : a felhasználó csoportját változtatja
-G csoport1,csoport2 : a júzer-t több csoporthoz is rendeli
-L user : lock-olja a felhasználó hozzáférését (nem tud belépni)
-U user : unlockolja a hozzáférést
userdel
# Felhasználó törlése
-r user : home-al együtt törli
deluser
# Felhasználó törlése
groupadd
# Csoport létrehozása
-g szám csoportnév : Egyénileg választott csoportazonosítóval (GUID)-el hozunk létre csoportot
# /etc/group : csoportlista
groups user
# A user csoportjai
groupmod
# Csoport fiókját változtatja
-n név újnév : csoport nevét változtatja
talk
# Felhasználókkal való kommunikálás egyik eszköze
finger
# Felhasználó információi
chfn
# Felhasználói információk megváltoztatása (finger kimenete)
mkswap
# Swap terület létrehozása
swapon
# Swap bekapcsolása
swapoff
# Swap kikapcsolása
last
# Ki jelentkezett be utoljára és honnan (felhasználó vagy terminál alapján)
lastlog
# /var/log/lastlog kimenete
passwd
# A bejelentkezett felhasználó jelszavának módosítása
stat
# File vagy filesystem státusz
su - user
# Indít egy másik shell-t, user felhasználóként
write user tty
# A felhasználóknak üzenet küldés
Folyamatok top
w
# Nemes egyszerűséggel megmutatja, ki van belépve, és mit csinál
pidof folyamat
# A folyamat azonosítóját adja meg (PID)
parancs &
# Parancs futtatása a háttérben
fg : felélesztés, majd előtérben futás
bg : felélesztés, majd háttérben futás
jobs
# Háttérben futó programok kiíratása
ps
# Futó folyamatok kiírása
-u pisti : pisti felhasználó által futtatott folyamatok
aux : minden folyamatot kiír, szinte minden információval
alxww : minden folyamatot, még több infóval (pl.: PPID)
-t1 : tty1-es terminál kilistázása
f : erdő szerű megjelenítés
l : kiírja a folyamatok PID-jét és PPID-jét is. (parent's process identifier)
ww : a programok parancssori kapcsolóit írja ki.
nice
# Priorítása lekérdezése, beállítása
-n --20 program : a rendszer a legtöbbet ezzel a programmal fog foglalkozni. (+19-től -20 ig)
renice -10 1124
# 1124-es folyamat -10-es prioritásra állítása
kill "pid"
# Folyamat leállítása PID szerint
-9 pid : erőszakos bezárás
-s "signal" : megadja, hogy miylen jelet küldünk a folyamatnak.
signal-ok: TERM, QUIT, ABRT, KILL
-1 : jelentése SIGHUP, mely a folyamat bezárása, config fájl beolvasása, folyamat újraindítása
-9 : jelentése SIGKILL, folyamat erőltetett bezárása. (Csak végszükség esetén)
-15 : jelentése SIGTERM, szabályos programleállítás
killall parancs
# Ha több "parancs"-fut (pl.: iceweasel), mindet leállítája
nohup find / name t* > ~/nohup.log &
# A "t" betűvel kezdődő fájlok keresése a háttérben, az eredmény a nohup.log-ba kerül.
init
# Futtatási szint beállítása
0 : kikapcsolás
1 : single-user mód
2-5 : multi-user mód
6 : reboot
# /etc/inittab -ban állítható be a gép indulási init szintje.
# /etc/rcX.d könyvtárak a megfelelő szinteken induló programok linkjeit tartalmazza
# Új szolgáltatás hozzáadása init szintekhez : Progtam bemásolása /etc/init.d-be, majd erről
# egy link létrehozása a kiválaszottt init szint könyvtárába (pl.: rc2.d) Ha S betűvel kezdődik
# elindul , mással nem. A Kezdőbetű után levő szám az induló folyamatok sorrendjét befolyásolják
runlevel
# Megadja, hanyas init szinten voltunk és vagyunk. (kimenet pl.: N 3 , vagy 3 2.) típusú.
# 3 N jelenti, hogy 3-ason voltunk és vagyunk, 3 2 pedíg hogy 3-ason voltunk 2-esen vagyunk
shutdown
# Kikapcsolás
-h now : Azonnali kikapcsolás (időt is megadhatunk)
-r 0 : Azonnali újraindítás
Időzített parancsfeldolgozás top
at
# Megadott időpontban futtathatunk programokat
-f todo 23.59 : előre megírt parancsainkat (todo fájlban) 23:59-kor lefuttatja az at.
# Idő formátumok
# 13.13 01.01.02 : 13 óra 13 perc, 2002, január 1
# 2pm tomorrow : honlap délután 2
# 1am Sun : hajnali 1 óra, vasárnap
atq
# Az at várakozási sorrendjét ismerteti
atrm pid
# Az at várakozási sorából való eltávolítás
cron
# Parancs ütemező
# /etc/cron.d ; /etc/cron.daily ; /etc/cron.weekly
sleep 5 parancs
# 5 Másodperc múlva indítja a "parancs"-ot.
schedutils
# Linux rendszer ütemező
screen
# Ablakkezelő, virtuális terminál emulátorral.
# Háttérbeli programok futtatásához alkalmazható program.
screen parancs : Egy új VT-t nyit, (1 shell-en) melyben a "parancs" fut.
Ctrl+a+d : bill. kombinációval tehetjük háttérbe.
screen -R $(pidof SCREEN) : paranccsal tudjuk előtérbe hozni.
Ctrl+a+? : előhozhatjuk a legfontosabb bill. kombinációkat
Ctrl+a+c : új ablakot hozhatunklétre.
Ctrl+a+p VAGY n : előző vagy következő ablakra ugrás. (previous, next)
time -v parancs
# A parancs lefutási idejét méri
Kernel,modulok,fordítás top
lsmod
# Betöltött modulok kilistázása
rmmod modulnév
# Betöltött modul lekapcsolása a kernelből
modprobe modulnév
# Modult tölt be a kernelbe
modinfo modulnév
# a modulról kapunk információt
ldd program
# Kiírja a programhoz szükséges megosztott könyvtárakat, függőségeket
# A fordítás menete, röviden. (ez csak az egyik módszer)
# Megfelelő kernel verzió beszerzése (www.kernel.org, pl.: linux-2.6.20.3.tar.bz2)
# apt-get install wget bzip2 binutils kernel-package module-init-tools initrd-tools yaird
# tar zxvf linux-2.6.20.3.tar.bz2 (érdemes a /usr/src-be)
# Belépés a létrejött könyvtárba
# make mrproper (ha már próbálkoztunk beállításokal)
# apt-get install libncurses5-dev
# make menuconfig (az érdemi munka)
# make-kpkg clean
# make-kpkg --initrd kernel-image kernel-headers
# cd ..
# dpkg -i *.deb (2db állomány)
Csomagkezelés top
./configure
make
make install
# Csomag telepítése forrásból
alien
# Csomag konverter program (pl.: .rpm .deb etc.)
apt /Advanced Package Tools, csomagkezelő/
-cache search : keresés
-cache showpkg csomag : megmutatja a csomag függőségeit
-cache policy csomag : a csomag telepített és telepíthető verzióit adja meg
-get install csomag : telepítés
-get remove csomag : törlés
-get autoclean : nem használt csomagok törlése
-get update : frissítás
-get upgrade : frissítések telepítése
-get dist-upgrade : distro frissítés
-get -f install : törött, hiányzó csomagoknál a barátunk.
-get clean : apt cache tisztítása
-get build-dep csomag : telepítés minden egyes csomagjával együt
-get source csomag : a csomag forrásának letöltése
-file list csomag : kilistázza a csomag tartalmát
dpkg /Debian packages/
# .deb csomagkezelő
-i csomag : telepítés
-r vagy --purge : törlés
-reconfigure csomag : csomag újrakonfigurálása
-l : csomagok listázása
-I csomag : csomag információk megjelenítése
-S fájl : megmutatja melyik csomaghoz tartozik a fájl
dselect
# A dpkg barátságosabb arca
A Red Hat csomagkezelője
rpm
# Red Hat Package Manager
rpm -ivh csomag.rpm
# csomag telepítése
rpm -Uvh csomag.rpm
# Frissítés vagy telepítés.
# Ha nincs telepítve , telepíti, ha telepítve van, megpróbálja frissíteni
rpm -Fvh csomag.rpm
# Csak frissítés. Ha nincs telepítve a csomag, kilép
rpm -e csomag.rpm
# Törlés
rpm -q csomag.rpm
# Megvizsgálja, hogy telepítve van e a csomag, és milyen verzió
rpm -qa
# Az összes telepített csomag vizsgálata
Hálózat top
arp
# ARP cache manipulálása
ifconfig
# Hálózati információk lekérése, konfigurálása
ifconfig eth0 192.168.10.1 netmask 255.255.255.0 up
# 192.168.10.1-es IP-t osztunk az eth0-ra (0-s hálókártya)
# 255.255.255.0 a netmask.
ifdown eth0
# eth0 eszközt lekapcsolja     
ifup eth0
# eth0 eszközt felkapcsolja ( dhcp esetén kér IP-t a kiszolgálótól)
host
# Lekérdezéseket kezdeményez a DNS kiszolgáló felé, tartományokról, zónákról.
-t ns valami.hu : valami.hu nameserverét adja meg
-t mx valami.hu : valami.hu levelező szervereiről ad információt
hostname
# Beállítja vagy megjeleníti a rendszer host-nevét.
curlftpfs -o allow_other username:password@ftp.domain.dom /csatolasi/pont
# Felcsatolhatunk ftp tárhelyeket, lokális fájlrendszerünkbe. (fusermount segítségével)
# Ha a hiba.:
# "If you don't use udev, you may get this error message:
# fusermount: failed to open /dev/fuse: No such fdevice or address
# Before loading the fuse kernel module, create the device node manually:
# A megoldás.:
mknode -m 666 /dev/fuse c 10 229
echo 0 > /proc/sys/net/ipv4/ip_forward
# Ha gépünket router-ként használjuk, érdemes beállítanunk a csomag továbbítást
# 1-es engedélyezi a tiltást, 0 tiltja a tiltást!
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Beállítjuk, hogy broadcast ping-re ne válaszoljon gépünk
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
# Beállítjuk, hogy ne válaszoljon gépünk a ping-re
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
# Engedélyezzük a hamis csomagok szűrését
...etc
--------------
# Ezek a beállítások rendszerleállításkor elvesznek, érdemes őket valamely induláskor
# lefutó script-be tenni, a hálózati interfészeket konfiguráló script elé.
--------------
etherwake
# Magic packet-et küld a wake-on-lan enabled hálókártyára
ethtool
# Ethernet kártya beállítások megjelenítése, változtatása
iptraf
# Hálózat terhelést figyelő program
mii-tool
# Hálózati tesztelő
nbtscan
# NetBIOS információkat adja meg, a hálózaton
net usershare add megosztasnev /eleresi_ut comment acl
# Megoszt könyvtárakat a hálózaton
# Ha a fenti parancs ilyen hibát dob.: "(net usershare: usershare are currently disabled)"
# az alábbiakban kell eljárnunk:
# mkdir /usr/local/samba/lib/usershares
# chgrp userneved /usr/local/samba/lib/usershares
# chmod 1770 /usr/local/samba/lib/usershares
#smb.conf global részébe a következőket.:
# usershare path = /usr/local/samba/lib/usershares
# usershare max shares = szám # (or the desired number of shares)
netstat
# Információkat ír ki a hálózati alrendszerről
-r : route kimenete
-i : interfész tábla
-tp : TCP/IP -t használó processzek listája
netstat -tn|grep ':80'|tr -s ' '|cut -d ' ' -f5|cut -d':' -f1
# kik csatlakoznak a gépünkre a 80-as porton?
netcat
# TCP/IP swiss army knife
nload
# Network load - Hálózati terhelés vizsgálat
ngrep
# grep, hálózati forgalomhoz
netsed
# Hálózati csomagok valós idejű megváltoztatására alkalmas program
nslookup www.host.com
# host.com IP címének vizsgálata
nmap
# Elsősorban port scanner, de igen sokrétű alkalmazás
-O ip_cim : Op.rendszer detektálás
-p 1-10 ip_cim : Portok vizsgálata 1-10 ig.
-p U:53,111,137,T:21-25,80,139,8080 ip_cim : UDP-n 53,111,137, TCP-n 21-25,80,139,8080-at vizsgál.
ping host
# Ping jelet küld a host-nak
-b ip_tartomány : broadcast üzenet küldés
route
# Útválasztó tábla megjelenítése (Routing table)
route add -net 192.168.10.0 netmask 255.255.255.0 eth0
# A 192.168.10.0-s hálózatra menő csomagokat az eth0-ra irányítja a rendszer
# A hálót így már látnunk kell
route add defaul gw 192.168.10.254
# 192.168.10.154-es IP-vel rendelkező router (gateway) hozzáadása a routing table-hez.
route del default gw
# Alapértelmezett átjáró törlése a routing table-ből.
rsh
# Távoli shell
-l user gepnev parancs : a "parancs"-ot lefuttatja a távoli gépen, user nevében
smbclient
# SMB hálózati erőforrások tallózása
smbclient -M gépnév
# Üzenet küldése Windows-os gépekre (net-send szolgáltatás). Elküldés:Ctrl + D az üzenet végén
echo üzenet | smbclient -M gépnév : azonnal küldi, nem kell Ctrl+D
ssh host /Secure SHell/
# Titkosított hálózati bejelentkezés
# config file-k.: /etc/ssh/sshd_config, /usr/local/etc
ssh-keygen -t rsa : RSA kulcs létrehozása ssh-hoz.
scp
# Biztonságos távoli fájl átvitel
tcpdump
# Hálózaton átmenő forgalmat figyeli.
-i ethX : Az ethX csatolón átmenő forgalmat figyeli.
traceroute host
# A hálózati útvonal kiírása a célszerverig (host) /IP hálózaton/
proftpd
# FTP kiszolgáló démon
# config file.: /etc/proftpd 
pure-ftp
# FTP kiszolgáló
rdesktop
# Remote desktop kliens
stunnel
# SSL (Secure Socket Layer) titkosított kapcsolatba csomagolhatunk protokollokat.
# pl.: POP3, IMAP, etc.
squid
# Proxy kiszolgáló
# config file.: /etc/squid/squid.conf
vsftpd /Very Secure FTP daemon/
# config file.: /etc/vsftpd
# Néhány fontos kérdés.:
-anonymus_enable : anonymus ftp engedélyezése. Szükség van egy ftp nevű user-re.
-local_enable : normal felhasználókat engedjük be. (kell az anonymus hoz is)
-write_enable : engedi az írást
-local_umask : felhasználók autómatikus jogai (default 022)
-anon_upload_enable : anonymusként feltülthetünk
-anon_mkdir_write_enable : anonymusként mkdir engedélyezés
-xferlog_enable : xfer log-ot ír a daemon
-connet_from_port_20 : 20-as portot használ
-chown_uploads : anonymusként feltöltött fájlok tulajdonosának megváltoztatása
-chown_username : Kinek a tulajdona legyen a file
-idle_session_timeout : inkatív kapcsolatok bontási ideje
wireshark
# Hálózati forgalom figyelő (GUI)
Bash programozás top
# 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 file
# Programunk futtatásához ./program_nev parancsot kell használnunk.
Írásjelek
# 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)
Dedikált környezeti változók
EDITOR : Az alapértelmezett szövegszerkesztőnk
HOME : Felhasználói könvvtárunk elérési útvonala
MAIL : Beérkező email-jeink alapértelmezett könyvtára
PATH : Azok az elérési útvonalak, melyekben a shell futtatható állományokat keres
OSTYPE : Az operációs rendszerünk típusa
PAGER : Az alapértelmezett file nézegetőnk elérési útvonalát kell tartalmaznia
PWD : A könyvtár, ahol éppen vagyunk. (Szimbólikus linknél nem egyezik meg a pwd kimenetével!)
SHELL : A jelenleg futú shell-ünk teljes elérési útvonala
TERM : A Terminálunk típusát tartalmazza
Ezek értékeinek kiíratására a következő parancs használható:
echo $VALTOZO_NEV
Shell változók
Értékadó utasítással.:
valtozo=érték : a változónk értéke legyen "ertek"
valtozo=$(echo 2+3 | bc) : a változónk értéke legyen 2+3, bc-vel kiszámolva.
export valtozo : shell változónkat környezeti változóvá tesszük
unset valtozo : ha már nincs szükség rá, mint környezeti változó.
Belső változók
echo $0
# A futó program neve
echo $$
# A futó program PID-je
echo $?
# A legutolsó parancs visszatérési értéke
Csővezetékek
# " | " segítségével tudjuk egy program kimenetét (stdout) egy másik program
bemenetére (stdin) csatolni. pl.:
ps aux | grep iceweasel
# Az összes folyamat kimenetét a grep szűrő bemenetére irányítjuk, amely az iceweasel-t keresi.
# stdin - standard input, jele.: fd0 (alapértelmezett bemenet, pl.: monitor)
# stdout - standard output, jele.: fd1 (alapértelmezett kimenet, pl.: billentyűzet)
# stderr - standard error, jelen.: fd2 (alapértelmezett hibacsatorna)
./program 2> hiba.txt
# Programunkat lefuttatjuk, az esetleges hibákat (stderr) a hiba.txt-be irányítjuk,
# az stdout helyett.
./program 1> kimenet.txt 2>&1
# Programunkat lefuttatjuk, kimenetét (stdout) a kimenet.txt-be mentjük, valamint
# az esetleges hibákat (stederr) hozzáfűzzük a kimenet.txt-hez.
cat file1 | sort | wc -w > file2
# file1-et tartalmát a sort-nak adja át, az rendezi, majd átadja a wc-nek, majd a wc
# kimenete a file2-be íródik
Néhány egyszerű példa.:
#!/bin/bash
echo Hello World!
# A szokásos Hello World kiírása, programunk futtatásakor.
#!/bin/bash
STR="Hello World"
echo $STR
# Az STR változó deklarálása, majd értékének kiíratása.
#!/bin/bash
tar -cZf /var/backup.tgz /home/user
# /home/user tartalmát menti és tömöríti a /var/backup-ba.
#!/bin/bash
OF= /home/user/$date +%Y%m%d).tgz
tar -cZf $OF /home/user/sajt
# Egyszerű backup script, mely a /hme/user/sajt tartalmát, napi dátummal
# ellátva egy .tgz állományba tömörítve menti.
#!/bin/bash
if ["foo" = "foo1" ]; then
echo a feltétel igaz
else
echo a feltétel hamis
fi
# Egyszerű if-else szerkezet
Egyszerű szerkezetek.: if, while, until, for
-if szerkezet.:
#!/bin/bash
T1="foo"
T2="bar"
if [ "$T1" = "$T2" ] then
echo a feltetel igaz
else
echo a feltetel hamis
fi
# eldöntjük T1 és T2 értékéről, hogy egyenlőek e.
-while szerkezet.:
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo a szamlalo erteke: $COUNTER
let COUNTER=COUNTER+1
done
# COUNTER változónkat 1-el növeljük addíg, amíg el nem éri a 10-et.
-until szerkezet.:
#!/bin/bash
COUNTER=20
until [ $COUNTER -lt 10 ]; do
echo a szamlalo erteke: $COUNTER
let COUNTER-=1
done
# COUNTER változónkat 20-as kezdőértékről 1-el csökkentjük, amíg el nem éri a 10-et.
-for ciklus (C szerű)
#!/bin/bash
for i in `seq 1 10`;do
echo $1
done
# az i változónkat felveszi 1-től 10-ig az értékeket, majd ki is írjuk a képernyőre
-for ciklus (a könyvtár elemeire)
#!/bin/bash
for i in $( ls );do
echo a konyvtar elemei: $i
done
# kiíratjuk a képernyőre az aktuális könyvtár elemeit
Egyszerű függvények.:
#!/bin/bash
function quit {
exit
}
function hello {
echo Hello!
}
hello
quit
echo foo
# Egyszerű fv. deklarálás, majd az értékek kiíratása ( a 10. sor sosem fut le!)
#!/bin/bash
function quit {
exit
}
function e {
echo $1
}
e Hello
e World
quit
echo foo
# Egyszerű fv. deklarálás, majd az értékek kiíratása ( a 11. sor sosem fut le!)
További példák.:
#!/bin/bash
echo "Most `w -h | wc -l` felhasználó van bejelentkezve."
# Kiíratjuk programunk segítségével, hogy hány felhasználó van bejelentkezve
#!bin/bash
test -d /home/user && echo van || echo nincs
# Megvizsgáljuk, hogy van e /home/user könyvtár, két kimenetű elágazással (&&)
# Ha van.: van
# Ha nincs.: nincs
# -d : van-e ilyen?
#!/bin/bash
if [ -d /home/user ]; then echo van; else echo nincs;
fi
# Ugyanaz mint az előző példa, csak kicsit másként.
# [-test parancs, ]-test zárás
#!/bin/bash
if [ -s /etc/motd ]; then echo nagyobb; else echo zerus;
fi
# Megvizsgáljuk, hogy a /etc/motd nagyobb e nullánál, vagy zérus.
# -s akkor ad IGAZ-at, ha a fájl létezik és nagyobb 0-nál.
#!/bin/bash
for i in *.mp3; do mpg123 "$i"; done
# Az aktuális könyvtárban az összes mp3 kiterjesztésű állományt, az mpg123
# nevű programmal lejátszuk.
Egyéb programok top
amsn
# MSN kliens
acpi
# ACPI eszközök információi
acpid
# acpi program démonja
bitchx
# IRC kliens (TUI)
badblocks
# Lemez ellenőrző (Bad sectorokat keres)
-o file_nev : a hibás sectorokat a file_nev állományba menti
cal
# Szöveges naptár
-y : az aktuális év teljes naptárát mutatja meg
clamav
# víruskereső szoftver
clear
# Törli a képernyőt
dict
# Szótár program
opendict
dict-freedict-hun-eng : magyar-angol
dict-freedict-eng-hun : angol-magyar
false
# Nem csinál semmit, sikertelenül. (1-es visszatérési értékkel)
firestarter
# Tűzfal konfiguráló
fsck
# Filesystem check.
# Lemez-ellenőrző (helytelen leállítás után autómatikusan lefut.)
# A helyre nem hozott állományokat a lost+found könyvtárba teszi.
fwbuilder
# Tűzfal beállító
gaim
# MSN, irc, etc, kliens
gpg -c file
# Fájl titkosítása (OpenPGP)
gpg file
# Fájl kititkosítása
gparted
# Lemez partícionáló
hdparm
# Merevlemes információk
-i /dev/hdx : Merevlemezünkről ad információt
-Tt /dev/hdx : Sebességmérő eszköz
hddtemp /dev/hdx
# Lemez hőmérséklet figyelő
k3b
# KDE alapú cd-dvd író program (GUI)
kopete
# MSN kliens
mbmon
# Motherboard monitoring
memtest86
# Memória tesztelő alkalmazás
mplayer
# Média lejátszó
qemu
# Processzor emulátor
setterm
# Konzol beállításai
tpconfig
# Touchpad konfiguráló
tpctl
# IBM ThinkPad hardver konfiguráló
true
# Nem csinál semmit, sikeresen. (0-ás visszatérési értékkel)
thosutils
# Toshiba laptop programok
reset
# Visszaállítja a konzol beállításait
vlc
# Média lejátszó
xchat
# IRC kliens (GUI)
xmms
# Audió lejátszó program
xmms-liveice
# Audió kimenetet küldi a southcast-nek
xdpyinfo
# X kiszolgáló információk
yes > file
# Csupa y-t ír a file-ba, elég gyorsan. :)
zgv
# Konzolos képznézegető