(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ájlez 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 újfile2Persze 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
manparanccsal 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ájlEz szépen betömöríti és letörli az eredeti fájlt. Visszafelé:
gzip fájlKifele:
gzip -d tömör.fájlvagy
gunzip tömör.fájlA '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 |gzipA 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.gzMegjegyzé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 zipfileTermé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éva
touch óópphhnnpedig 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 filevagy:
chmod 4000 UID fileHa 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...