E-mail
















 

Milyen hosszú a kezed?


Sokféle lehetôség van arra, hogy használni tudd a gépet, mindegy, hogy ezer kilométer távolságban van tôled, vagy épp itt van melletted, de nincs még egy monitorod, billentyűzeted és egered, hogy dolgozhass rajta. Semmilyen speciális szoftverre nem lesz szükséged ehhez, hála a UNIX alapú OS X-nek. Sôt, ha gép elôtt ülsz, miközben ezt a cikket olvasod, ki is tudod próbálni az alábbiakat anélkül, hogy egy másik gépet kellene becipelned a szobába. Szükséged lesz a ‘Terminal’-ra, plusz IP alapú kapcsolattal kell összekötnöd a gépeket. Hogyan? Akkor egy gép lehet két gép is? Elméletben lehetséges, a szerver-kliens alapokat kell megvizsgálnunk.

Amikor leülsz egy UNIX alapú operációs rendszert futtató gép elé, és már be vagy jelentkezve a grafikus felületen, egy szerverre bejelentkezett klienst látsz. A szerver adott szolgáltatásokat – úgymint fájlkezelés, adatki- és bevitel, eszközök használata – biztosít a kliensnek. Ezért lehetséges a többfelhasználós mód, a távoli bejelentkezés, a személyre szabott beállítások. Mivel minden lehet bonyolultabb, a géped egyben egy kliens is, ami például az internetszolgáltatód szerverére kapcsolódik. Ha nem vagy netközelben, a géped – mint szerver – ad ki egy IP címet, hogy a kliensek csatlakozni tudjanak, ezt hívják ‘localhost’-nak.

Tehát az IP alapú kapcsolat megvan egy gép esetén is, illetve a gépek e bolygón belül bárhol lehetnek, ahol internet van. Aranyos nem?

A hozzávalók

Kell az ‘ssh’. A micsoda? Secure SHellnek, azaz biztonságos shellnek hívják, egy kliensszoftver, amit arra a gépre telepítesz, amirôl vezérelni akarsz gépeket. Ha elindítod a Terminalt egy ‘shell’ köszönt rád. Hívhatod parancsértelmezônek is, a lényeg, hogyha valamit szeretnél a géppel működni, ide gépeled be az általad kívánt parancsokat, és ha minden rendben megy, a kívánt eredményt is kapod.

A ‘ssh’ arra való, hogy távoli gépnek küldje el a parancsaidat, méghozzá titkosítva, mindemellett az adott használatban lévô portok adatforgalmát az általad használt titkosított csatornába is tereli, így a gonosz interneten keresztül is biztonságban tudsz maradni. A távoli gépen szükség van egy ‘ssh’ kiszolgálóra, amely megengedi a bejelentkezést.

Ezt OS X alatt a ‘Sharing’ (Osztozás) beállításpanelen teheted meg, ha a ‘Services’ (Szolgáltatások) fülön a ‘Remote Login’ (Távoli bejelentkezés)-t bejelölöd. OS X alatt elôre telepítve van a kliens, de minden platformra létezik ‘ssh’, Classicra is. Az ‘ssh’ a ‘távoli’ rész a ‘távoli bejelentkezés’-ben, a munkát a többi lent tárgyalt paranccsal valósítjuk meg. Ha ‘ssh’-val jelentkezel be egy távoli gépre, az az ‘sshzás’.

Ezekkel sok dolgot valósíthatsz meg a távoli gépen, úgymint fájlmásolás, programindítás, képernyô lefotózása, Shellvagy AppleScriptek futtatása. A mindennapi UNIX parancsokon felül a OS X-nek sok hasznos parancsa létezik: az ‘open’, ami fájlokat, könyvtárakat, programokat vagy URL-eket képes a parancssorból megnyitni neked; a ‘screencapture’, ami a képernyôrôl készít felvételt, amit egy általad megadott fájlban is elhelyezhet.

AppleScript

Az AppleScript a Macintosh beépített szkriptelési nyelve, amellyel szinte mindent tudsz vezérelni, még a felhasználói felület elemeit is. Különösen hasznos, ha sokszor ismétlôdô feladatokat szeretnél végrehajtani. Ha mindezt parancssorból akarod megvalósítani, az ‘osascript’ parancsot írd be, ha a parancs kiadásával együtt szeretnéd a szkriptet is megírni, az ‘osascript -e _a_szkript_elsô_ sora_ -e _a_szkript_második_sora_’ parancsot használd!

Mikor a parancsaidat ‘ssh’-n keresztül használod, az adott gépen bejelentkezett felhasználó jogaival kell futtatnod, hogy azt lássa, amit szeretnél. Ezt kétféleképpen teheted meg, megszerzed az ô bejelentkezését, vagy a ‘sudo’ parancsot használod, amivel tetszôleges, az adott gépre telepített felhasználó jogokat szerezhetsz, ha admin vagy. Magyarul, ha a gép elôtt Béla ül, és te a saját loginoddal léptél be, és meg akarsz nyitni egy fájlt Bélának, akkor az ‘open file’ parancsot ‘sudo open file -u bela’ formában kell kiadnod, hogy ebbôl Béla is érzékeljen valamit, azaz így az orra elôtt nyitsz meg egy dokumentumot.

Ha tudod Béla loginját, akkor egyszerű. Ha pedig egy másik névvel jelentkezel be, akkor egyszerre többen használjátok ugyanazt a gépet.

Most jön a móka

Ami varázslásnak is tűnhet, valójában UNIX szolgáltatás. A Terminált használjuk a műveletekhez, semmi speciális beállítás nem kell. A bejelentkezés:

% ssh bela@célgépIPje

Ahol ‘bela’ az a felhasználónév, akinek a jogaival dolgozni akarsz, a célgépIP-jére szükséged van, tudd meg minél elôbb. Ha azon a gépen akarod kipróbálni, ami elôtt ülsz, semmi baj, ‘bela’ helyett írd be a te felhasználóneved, az IP lehet ‘localhost’, ami mindig a te gépedet jelenti, vagy pötyögd be az IP címedet. Persze, ne felejtsd el bekapcsolni a ‘Remote Logint’-t, majd üss ‘enter’-t. Ha elôször csatlakozol erre a gépre, el kell fogadnod az adott gép RSA ujjlenyomatát, ami a titkosítás miatt szükséges. A ‘yes’ szócskát gépeld be a folytatáshoz. Legközelebbi csatlakozásodkor már csak a jelszót kell megadnod.

Bejelentkezés után a célgép nevét és a loginolt felhasználót láthatod, mintha az adott gép elôtt ülve indítottad volna el a Terminált. Ha ‘localhost’-ra csatlakoztál, minden azonos lesz a sima ‘Terminal’ indítással. Most, hogy kapcsolatba kerültünk, nézzük, mit csinál Béla:

% top -u 10

Ez a parancs azt a 10 processzt listázza ki, ami a legtöbb processzoridôt követeli magának, a legmohóbbat rakja a lista tetejére ezek közül.

Könnyen kiderül, hogy játék avagy munka folyik-e az adott gépen. Ha csak az éppen futó ‘futóprogram.app’ nevekre vagy kíváncsi – a legtöbb memóriát foglaló lesz legfelül –, akkor:

% ps -wwaumx | grep ‘.app’

Ha a processzorterhelés érdekel, hagyd ki az ‘m’-et a ‘-aumx’ listából. A ‘ps’ kilistázza a processzeket, amik közül a grep a ‘.app’ végűeket írja ki végül. Ha kíváncsi vagy, az adott gép képernyôjét is megnézheted:

% screencapture -x
~/kepernyofoto.pdf


Így lesz egy ‘kepernyofoto.pdf’ nevű doksid az éppen aktuális képernyôvel Béla home mappájában. A ‘-x’ paraméter arra való, hogy Béla ne hallja a fotózáskor kiadott klikk hangot. És ezt hogy nézed meg? Átmásolod a saját gépedre! Mivel távoli gépre vagy bejelentkezve, ‘scp’-t, azaz ‘secure copy’-t (biztonságos másolás) kell használnod:

% scp ~/kepernyofoto.pdf
user@tegépedIPje:Desktop/


A távoli gép képernyôfotója az íróasztalodra kerül, ahol a ‘user’ a rövid felhasználóneved, az tegépedIP-jét már ki is találtad, ezt le tudod lesni, ha indítasz egy másik terminált – a Jaguár képes egyszerre több felhasználót kezelni, de csak parancssorban –, és beírod az ‘ifconfig en0’ parancsot. Az ‘inet’ sorban a legelsô helyen találod. Minden másolásnál rákérdez a jelszavadra, ha nem akarod mindig beírni, készíthetsz RSA kulcspárokat, amik elvégzik ezt helyetted.

Másolni pedig kétféleképpen lehet, vagy egyik géprôl – ahová be vagy jelentkezve – másolod át a doksit a saját gépedre, vagy a saját gépedrôl kéred a másolást. A fenti megoldás az elsô, a másodikhoz ki kell lépned az ‘ssh’-ból, és helyben kell kiadnod a következô parancsot:

% scp

bela@célgépIPje:kepernyofoto.pdf
Desktop/kepernyofoto.pdf


Meg kell adnod még a ‘bela’ névhez tartozó jelszót, majd átmásolódik a fotó az íróasztalodra. Ez akkor elônyösebb, ha te router mögött vagy, és a te gépedrôl nem tudsz másolni, de a távoli géprôl igen.

Beszéljük meg!

Mondjuk szeretnél valamit mondani Bélának, hogy itt vagy a gépén, át fogod másolni azt a dokumentumot, amit kértél tôle. Ehhez az ‘ssh’-n kívül az ‘osascript’ parancsra lesz szükséged. Elôször köszönjünk Bélának, ha le van halkítva a gép, akkor nem fogja hallani, ezért növeld a hangerôt elôtte:

% osascript -e ‘set volume 10’ -e
‘say "Hello" using "Zarvox"‘


A következô paranccsal egy párbeszédablak nyílik meg a kissé ijedt Béla elôtt:

% osascript -e ‘tell app "Finder" to activate’ -e ‘tell app "Finder" to display dialog "Szia Bela, en vagyok! Atmasolhatom a doksijaimat?" default answer "..." with icon 1 buttons {" Rendben "} default button 1’

Amit Béla begépelt, azt a terminálban kapjuk vissza:

text returned:meg ne, kesobb!, button returned: Rendben

A text returned mezôben kapjuk meg a választ, a button returned pedig a lenyomott gomb nevét tartalmazza.

Programnyitás és -zárás Az elôbb megnézted, hogy milyen programok vannak használatban. Ha az egyik kifagyott, és vagy teljes képernyôs nézetben van, vagy ‘Force Quit’ sem működik, akkor megoldás lehet, ha távolról lövöd ki az adott programot. Elôször is nézd meg az adott program PID-jét, ezt átadva a ‘kill’-nek, vagy ha ez sem megy, a ‘kill -9’-nek, a program visítva menekül a memóriából. Legyen ez az iTunes:

% ps -wwx | grep ‘iTunes’
333 ?? S 0:08.26 /Applications/iTunes.app/Contents/MacOS/iTunes -psn_0_10878977


A sor legelején van a PID-je, most 333.

% kill -9 333

Ezzel megszabadultunk tôle.

Hacsak a következô számot szeretnéd hallgatni a következô sor kell:

% osascript -e ‘tell app "itunes" to play next track’

Újraindítás és kikapcsolás

Kedvenc gyerkôcödet is elküldheted aludni, ha még éjfélkor is játszik a gépén. Létezik direkt parancs a kikapcsolásra:

% sudo shutdown -h now

Ekkor minden programból azonnal kilép, nincs lehetôség mentésre. A következô sor vár két percet, és azután kapcsolja ki a gépet, ha el nem mentett dokumentum van nyitva, akkor vár, ameddig el lesz mentve, elôtte azért szól, hogy ideje lefeküdni. A kikapcsolás csak akkor hiúsulhat meg, ha túl sokáig vár a mentésre:

% osascript -e ‘tell app "Finder" to display dialog "Ideje lefeküdni!" giving up after 5 buttons {" "} default button 1 with icon 0’ -e
‘tell app "Finder"to delay 120’ -e
‘tell app "Finder"to shut down’


Tetszôleges parancsokat is kitalálhatsz, végtelen lehetôségek rejlenek az ‘ssh’-ban és az apró programokban. Egy biztonsági rés volt az ‘ssh’-ban, de azt a 10.2.8-as OS X update-ben kijavították. Ha kérdésed vagy problémád van távoli dolgokkal kapcsolatban, írj bátran!


Mátyás Ferenc Farkas


A lap tetejére