Tizedik lecke
-
"A Unix az az operációs rendszer, melyet
buherátorok
írtak saját maguk és
más buherátorok
számára. Ezért a Unix jelszava:
Az amatőrök dögöljenek meg!"
-
Tippek és trükkök
Ez a lecke azok számára készült, akik
már egy kissé otthonosak a Unixban, ismerik a
fontosabb
parancsokat és kapcsolóikat, de tanácstalanok,
hogy tulajdonképpen hogyan és mire is
használják őket.
Bátorításul bemutatunk néhány
tippet.
Megkapta-e a címzett a levelünket?
A Unix a beérkező leveleket egy fájlban
tárolja,
melynek neve egyezik a felhasználó
accountjának
nevével. Ezek az inbox
fájlok
a legtöbb helyen a
/usr/spool/mail alkönyvtárban
vannak. (Kivétel a Silicon
Graphics gépek, ahol a /usr/mail-ben. :-(
A saját inboxunkon
kívül természetesen senki másét
nem tudjuk elolvasni, de az ls paranccsal meg
tudjuk nézni, így
látjatjuk, hogy levelezőpartnerünknek
van-e levele a
postaládájában. Ha ezt a vizsgálatot
levelünk
elküldése előtt és után is
elvégezzük, meggyőződhetünk
róla, hogy a
levél valóban megérkezett.
(Némely Unix rendszerek
hajlamosak arra, hogy ha a címzett disk quota-ja
kimerül, akkor a
hozzá beérkező leveleket nyomtalanul
eltüntetik.)
A Unix három különféle időpontot
tárol a
fájlokról, amelyet az ls parancs
zárójelben
megadott kapcsolóival lehet megtudni:
- Last Modificaton - utolsó módosítás
(write) (ls -l)
- Last Access - utolsó művelet (írás,
olvasás, másolás, stb.)
(ls -lu)
- Last Inode Change - utolsó inode módosítás
(create, chmod, stb.) (ls -lc)
E három időpont egymáshoz viszonyított
értékéből levonhatók
bizonyos -nem
okvetlenül helytálló-
következtetések.
(Például: ha a Last Access későbbi,
mint a Last
Write, akkor levelünket valószínüleg
elolvasták,
stb.)
Parancsok végrehajtása bejelentkezés
nélkül
Gyakori eset, hogy több gépre is van accountunk,
be vagyunk
jelentkezve az egyik helyen és valamiért
szeretnénk egy
parancsot végrehajtani a másik gépen.
(Például szeretnénk kiadni egy
w parancsot, hogy
lássuk, ki milyen processzt futtat a másik
gépen.) Ehhez
be kellene jelentkeznünk a telnet vagy az
rlogin segítségével,
beírni a jelszavunkat,
begépelni a parancsot és végül
kilépni. Van
azonban egy kényelmesebb megoldás, az
rsh parancs (remote shell).
Az rsh a neki megadott parancsot nem nálunk,
hanem a távoli
gépen hajtja végre. Tegyük fel,
hogy az ind12 gépen
vagyunk és meg akarjuk nézni, ki milyen
processzt futtat az ind03-on. Íme:
ind12% rsh ind03 w
Feltesszük,
hogy az ind03 gépen ugyanaz a
username-ünk,
mint az ind12-n. Ha ez
nem így van, akkor a parancsnak meg kell
adnunk azt az username-t,
amelyiken a parancsot végre szeretnénk hajtani.
Ha például a
gold.uni-miskolc.hu gépen
szeretnénk végrehajtani egy
last parancsot és ott valamilyen
szeszély
folytán xkrm5687 a username-ünk,
akkor a megfelelő parancs
így néz ki:
ind12% rsh gold.uni-miskolc.hu -l xkrm5687 -n last
Megjegyzés: Sajnos az rsh parancs kapcsolóit
a különféle Unix
rendszerekben kicsit másképp hívják.
A mi példáink Silicon Graphics gépekre
vonatkoznak; aki
ettől eltérő gépen
próbálkozik, az
nézzen utána az rsh parancs kapcsolóinak
a man-ban!
Ahhoz, hogy az rsh parancs csakugyan végre
is hajtsa a
kívánt parancsot a távoli gépen
és ne a "Permission denied"
sztereotip üzenettel
térjen vissza, kell, hogy
a távoli gépen legyen egy .rhosts
fájlunk a
kiindulási könyvtárunkban (home directory).
A .rhost fájl írja le,
hogy mely hostokról
milyen username-vel lehet
rsh-val belépni.
Nézzük az ind12 gépen
található alábbi minta
.rhosts fájlt:
ind03
ind11
gold xkrm5687
suma1 stsmork
Ebből a következők derülnek ki.
Az ind03 és ind11
gépekről be tudunk rsh-zni az
ind12-re
feltéve, hogy
ugyanaz a username-ünk, mint az ind12-n.
A gold-ról csak az
xkrm5687 nevü user, a suma1-ről
pedig csak stsmork tud
távolról parancsokat végrehajtani az
ind12-n
lévő accountunkon, emennyiben ez a
szándékuk.
VIGYÁZAT: Ha valakit felveszünk a
.rhosts fájlba, akkor
attól a rendszer -Unixban merőben szokatlan
módon- nem
fogja kérdezni a jelszót, ezért
legyünk nagyon
óvatosak, mikor .rhosts fájlt
készítünk!
A .rhost fájl létrehozásának
van egy további
kényelmes következménye is: az rlogin
parancs nem
kérdezi meg a jelszót, mikor olyan gépre
tépünk be, ahol a .rhosts fájlban meg
van adva a
gépünk neve. (Természetesen itt is
feltétel, hogy a
két gépen azonos legyen a username-ünk,
vagy ha nem, akkor a
másik username legyen feltüntetve a
.rhosts fáljban.)
Talk beszélgetések logózása
A tee olyan Unix program, amely a bemenetére
csövezett adatokat
megjeleníti a képernyőn
(standard kimeneten), és
egyúttal a paraméterként megadott
fájlba is
kiírja. Ha például szeretnénk
rögzíteni
egy beszélgetés szövegét,
amelyet a suma2
gépen bonyolítunk le, akkor a kapcsolat
felvétele
előtt tegyük a következőket:
suma1% telnet suma2 | tee duma.log
Ettől kezdve minden képernyőn
megjelenő karakter egyúttal
a duma.log fájlba is bekerül,
egészen addig, míg a
<Ctrl-d> leütésével ki nem
lépünk a suma2 gépről.
Miután így bejutottunk a
suma2-re, a
szokásos módon talkoljuk meg a
beszélgetőpartnerünket és
csevegjünk vele.
Később bármikor visszajátszhatjuk a
beszélgetés szövegét a
duma.log fájlból
a more vagy a cat
segítségével.
Foto ftp
A "foto ftp"-nek csúfolt eljárással
olyan gépekről hozhatunk el bináris
fájlokat,
ahová valamilyen okból nem tudunk
ftp-vel bejutni.
(Ennek általában az az oka, hogy a két
gép
között annyira lassú a kapcsolat, hogy a
hagyományos ftp program timeout
hibával elakad.) A módszer a
következő lépésekből áll:
- Jelentkezzünk be interaktívan a
távoli gépre.
- A távoli gépen uuencode-oljuk
be az áthozni
kívánt fájlt.
- Kapcsoljuk be a logfájl szolgáltatást
a lokális
gépen. (Ha PC-ről jelentkeztünk be, akkor ez
általában nem gond, mert minden terminál
emulátor
képes fájlba másolni a képernyőn
megjelenő szöveget. Ha a lokális
gép Unixos, akkor
használhatjuk az előző pontban leírt
módszert.)
- A cat segítségével
írassuk ki a
képernyőre a 2. pontban létre
hozott uuencode-olt fájlt.
(A 2. pont egyébként kihagyható, mert az
uuencode program alapértelmezésben a
képernyőre
küldi kimenetét.)
- Lépjünk ki a távoli gépről
és a
lokális gépen keletkezett log fájlt
uuedecode-oljuk ki.
Átjelentkezés
egyik accountról a másikra
Előfordulhat, hogy valamilyen okból
át akarunk jelentkezni
egy másik accountra. (Pl. több accountunk
is van ugyanazon a
gépen). Ilyenkor elvileg újra be kellene
telnet-elnünk,
beírni a másik username-t, megadni a
másik jelszót,
stb. Van egyszerűbb út is; ha pl. éppen
orlando vagyunk
és stsmork szeretnénk lenni, akkor:
zeus% su - stsmork
A
parancs megkérdezi stsmork jelszavát
és -hacsak el nem gépeltük-
átjelentkezik az stsmork accountra.
A minusz jel
és az username közé
KELL a szóköz karakter!! Az
su parancs használatát
a rendszer biztonsági
okokból egy sulog nevű fájlban
tárolja.
FIGYELEM! Soha ne adjuk ki paraméterek
nélkül az su
parancsot! Ez ugyanis a su root-nak felel meg, ami
betörési
kísérletnek számít, amit a
rendszeradminisztrátorok rossznéven szoktak venni!
*************************************************************************
*= =*
*= SZERZOI JOGOK =*
*= =*
*= Ez a dokumentum a Unix operacios rendszer es a szamitogepes =*
*= halozatok elterjedeset kivanja elosegiteni, ezert dijmentesen =*
*= terjesztheto. Nem szabad azonban a terjesztes soran a szoveget =*
*= megvaltoztatni, barmilyen modon megcsonkitani es a szerzoi =*
*= jogokra vonatkozo megjegyzest eltavolitani! Sem a dokumentum, =*
*= sem annak barmely resze nem hasznalhato fel segedanyagkent vagy =*
*= tankonyvkent profitorientalt intezmenyekben vagy tanfolyamokon, =*
*= a szerzok elozetes irasbeli engedelye nelkul! =*
*= =*
*= (C) Csaky Istvan es Mork Peter Miskolc, 1994. januar 19 =*
*= =*
*************************************************************************