T. I. N. T. F. M.

(This IsN't The F*cking Manual)

UNIX
a la Hamster

Az agyhalál archivuma?

Érdekes, és ugyanakkor fontos dolog UNIX alatt az archiválás is. Ez a szó a DOS/Windows irányából érkezőknek talán mást jelent, mint nekem, náluk ezt úgy hívják, hogy "zippelés" (ortodoxéknál esetleg "arjolás" vagy "rarolás"), és általában másolt (meg nem vásárolt) segédprogramok segítségével történik. UNIX alatt többféle lehetőség áll rendelkezésünkre, díjmentesen. Átalában több program együttes használatával jutunk el a kívánt eredményhez, ilyen például az alap-UNIX compress nevű programja, vagy a GNU gzip tömörítője, és/vagy a nem-tömörítő-csak-kötegelő tar. Kezdjük talán utóbbival!

Tehát tar. Másneven kopasz...:-) Ez a program csak annyit tesz, hogy adott fájlokat összefűzi egyetlen nagyobbá. Eredetileg mágnesszalagra való mentéshez találták ki, de természetesen diszken is használhatjuk. Ehhez beírjuk:

tar cf hosszú.állomány.neve elsőfájl másodikfájl harmadikfájl
ez három megadott fájlt összefűz egybe. Amennyiben már meglevő tarfile-hoz akarunk hozzáfűzni, c helyett r-t kell írni.
tar rf meglevő.tarfile újfile1 újfile2
Persze wildcard-okat is meg lehet adni. Ha többet akarunk megtudni a tar-ról, akkor kérjünk help-et. UNIX alatt ez a
man
paranccsal oldható meg, ilyenkor általában tonnányi szöveget kapunk, csak ömlik a képünkbe az információ, nem éppen felhasználóbarát módon (persze nagy filozófia kérdés, hogy mi az, hogy felhasználóbarát, ha a Windowst annak nevezik...). Amennyiben valami konkrét dologra akarjuk megtalálni a megfelelő parancsot, írjunk
man -k
-t... Persze ennél sokkal egyszerűbb, ha valakit megkérdezünk szóban, esetleg levélben... Na mindegy, vissza az archiváláshoz... Ki is kell ám valahogy csalogatni a betarolt fájlokat (szövegszerkesztővel kicsit nehézkes:):
tar xvf tarfile
...csak kicsomagolom a tarfile-omat, és már megyek is (hányni...) (tartalomjegyzék: tar tv tarfile) Na igen, de az archiválás nem minden! Mi lenne, ha kicsit össze is nyomnánk, tömörítenénk? Alapban ez a
compress fájl
Ez szépen betömöríti és letörli az eredeti fájlt. Visszafelé:
uncompress compressed.fájl(ahátam)
A UNIX-compressed fájlokat arról lehet megismerni, hogy .Z kiterjesztésük van. Jobban tömörít a GNU gzipje:
gzip fájl
Kifele:
gzip -d tömör.fájl
vagy
gunzip tömör.fájl
A 'tömörfájlok' ismérve a .gz 'kiterjesztés'. Persze az egészet lehet pipe-olni is:
tar cf unix.tanfolyam unix1 unix2 unix3 unix4 |gzip
A GNU tar esetében egyébként nem kell pipe-olni, mert ezt a tar megteszi helyettünk a -z opció használata esetén:
tar czf unix.tanfolyam.tar.gz unix1 unix2 unix3 unix4
és
tar xzf unix.tanfolyam.tar.gz
Megjegyzés: A tarnak, compressnek és gzipnek van DOS-os változata is, hogy a leszedett fájokat utólag más oprendszer alatt is kitömöríthessük. Ami fontos, hogy a gzip bináris (igazából ömlesztett) állományként kezeli a fájlokat, mivel UNIX alatt nincs különbség bináris és textfile közt. Ilyenkor egy UNIX alatt benyomott textfile elég furán tud kinézni. DOS alatt éppen ezért használjuk a -a opciót:
gzip -d -a zipfile
Természetesen a tar és zipfájlokat binárisként kell ftp-n is kezelni!

Aprósütemény

Ha már apró, Internetezésben használható segédprogramokról beszéltem, érdemes ismerni  az uuencode és uudecode nevűeket, melyek például akkor jönnek jól, ha levélben, vagy a Useneten akarunk bináris fájlokat küldeni/publikálni.

Na, és most valami egészen más. Adott egy A B C D háromszög... nemis.. érdemes megjegyezni, hogy hogyan kell csak úgy élből létrehozni egy fájlt. Erre szolgál a

touch fájlnév
a
touch óópphhnn
pedig eme fájl datálásához jó...

A chmodnál nem említettem, hogy van még egy érdekes módusa a file-oknak: ez a setgid, illetve setuid (GID és UID ugye = group és userID), melyek segítségével egy adott utasítást/programot úgy tud valaki más is elérni/végrehajtani/stb, mintha az a saját fájlja lenne... Ehhez szükségeltetik egy

chmod 2000 GID file
vagy:
chmod 4000 UID file
Ha valaki azt látja, hogy egy root, superuser, vagy superuseri jogokkal felruházott valaki vigyázatlanul hagyta a gépét, ne felejtsük számunkra is elérhetővé tenni a (root jogokkal felruházott) shelljét: cp /bin/sh /egy/kellően/félreeső/directory/ba/újnéven és chmod 4755 újnév Ezután ha elindítjuk ezt a félreeső helyre dugott shellt, az olyan, mintha az ő accountját használnánk... Persze ezt egy egyszerű userrel is megcsinálhatjuk, de abban mi a poén... Ahhoz, hogy ezt a hackelt shellt elérjük, nekünk is kell, hogy legyen accunk, különben nem tudjuk az ő shelljének a mását futtatni, és mezei userként nem tudjuk akárhova elhelyezni azt... Ja: az ilyen GID/UID változtatás meglátszik egy fájl ls -l-re adott argumentumainál is: a végrehajthatóságot jelképező egyik 'x'  helyén 'S' vagy 's' áll...

Vissza Előre