İnternet üzerinde kesinlikle yanlız olmadığınıza göre, kimi durumlarda
kendi Linux'unuz dışındaki sistemlere girmek isteyeceksiniz. Bunun için
uyarlanmış çeşitli komutlar mevcuttur. Bu komutlar sadece bağlanmak için
değil, iki makina arasında birtakım dosya transferi gerçekleştirmek için
de kullanılabilir.
Linux (ve UNIX) için ağ uygulamalarında kullanılmak üzere geliştirilen
temel olarak iki sistem vardır. Bunlardan UUCP (Unix to Unix CoPy),
genel olarak iki makina arasında bir kere bağlantı kurup veriyi iletir
ve bağlantıyı kapatır. Eski bir protokol olan UUCP, genellikle modemler
arası veri iletişiminde işe yarar.
TCP/IP ise daha önce de belirtildiği gibi yerel ağ veya İnternet üzerinde
rahatlıkla kullanılabilen bir protokoldür. TCP / IP 'nin uzaktan bağlantı
komutları "r" harfi ile başlar. Örneğin rlogin (remote login) bir
sistemden diğerine telnet bağlantısı yaparken rcp (remote copy)
ise bir makinadan diğerine dosya kopyalar. Bu ve buna benzer uzaktan
bağlantı komutları iyi bilmeniz size çalışmalarınız sırasında zaman
kazandıracaktır.
"r" komutlarını kullanabilmeniz için kesinlikle TCP/IP protokolünü
tanıyan bir ağ (PPP, Ethernet, SLIP gibi) üzerinde olmalısınız.
rlogin : Geçerli bir hesabınızın olduğu makinaya girmenizi
sağlar. telnet komutuyla benzerlik gösterir. Ayrıldıkları nokta, karşıdaki
sisteme girerken gerekli yaıplandırmalar yapılırsa parola sormamasıdır. Bu
kısma ileride değineceğim.
Aşağıdaki komut ile ordek isimli makinaya giriş yapılıyor.
Eğer yukarıdaki gibi yazarsanız, ordek makinasına ait IP numarası
veya bu adresin tam isminin, örneğin ordek.cclub.metu.edu.tr/etc/hosts dosyasında yeraldığına emin olmanız gerekir. Karşı
makinada bağlanılacak kullanıcı ismi de komut satırından belirlenebilir.
cclub:~$ rlogin ordek -l httpd
Password:
Last login: Fri Feb 21 22:02:46 from cclub.metu.edu.tr
Linux 2.0.27.
ordek:~$
Yukarıda yaptığımız, cclub makinasından ordek isimli makinadaki httpd
kullanıcısına bağlanmak oldu. Üzerinde Linux çalışan ordek makinası doğal
olarak bana bu kullanıcıya ait parolayı sordu. ordek makinasında yeralan
bir dosya üzerinde değişiklik yaparak istersem parola sorulmadan anında
girilmesini sağlayabilirim. Bunu .rhosts (remote hosts)
dosyası sağlar.
.rhosts dosyasında makinaya bağlanabilecek olan kullanıcılar
ve bunların hangi makinalardan bağlanacaklarını gösteren bir liste
vardır. Biraz karışık mı oldu? Şu örneği inceleyelim:
ordek:~$ uname -a
Linux ordek 2.0.27 #1 Sun Jan 19 13:06:08 EET 1997 i486
ordek:~$ whoami
httpd
ordek:~$ cat ~/.rhosts
cclub.metu.edu.tr gorkem
Yukarıda ördek makinası üzerindeki httpd kullanıcısının çalışma dizininde
bulunan .rhosts dosyasında iki sütun yeralıyor. İlki, güvenilen
makinanın ismi (cclub.metu.edu.tr), ikincisi de bu makina üzerindeki
güvenilen kullanıcı (gorkem). .rhosts dosyası parolanızı başkalarına
vermeden istediğiniz makinadaki bir kullanıcının hesabınızı kullanmasını
sağlar. Kısaca bir satırda herhangi bir kullanıcının makina ismi ve
hesap ismi bu dosyada varsa, sisteme giriş izni verilir.
Bu aşamadan sonra cclub.metu.edu.tr adresindeki gorkem kullanıcısı parola
girmeden ordek.cclub.metu.edu.tr adresindeki httpd kullanıcısı olarak
çalışmak isterse yapması gereken:
cclub:~$ whoami
gorkem
cclub:~$ rlogin ordek.cclub.metu.edu.tr -l httpd
Last login: Sun Feb 23 11:19:04 from cclub.metu.edu.tr
Linux 2.0.27.
ordek:~$
Artık ordek makinası üzerindeyiz. Parola girmeden bir makinadan diğerine
atlamış olduk. .rhosts dosyasında eğer makina ismi yerine "+"
işareti kullanılırsa her makinanın veya kullanıcı ismi yerine "+" işareti
kullanılırsa her kullanıcının giriş izni olduğu anlaşılır. Makina isimleri
yerine IP adreslerini de kullanabilirsiniz. Birkaç örnek:
144.122.71.55 +
# (144.122.71.55 makinasi uzerindeki tum kullanicilara giris izni ver)
+ murat
# Butun makinalar uzerindeki murat kullanicilarina giris izni ver.
# (Cok buyuk bir guvenlik acigi)
rsh : Bazı durumlarda çalıştığınız makinada dışındaki bir sistemde
bir veya birkaç kısa komut çalıştırmak isteyebilirsiniz. Örneğin karşı
sistemde kimler, hangi işleri yapıyor veya çalışma dizininde yeralan
dosyaları görmek gibi. Bütün bunlar telnet veya rlogin programına gerek
duymadan rsh (remote shell) ile yapılabilir. Tek şart, üzerinde komut
işletilecek makinadaki .rhosts dosyasında gerekli makina ve kullanıcı
ismi girişi olmasıdır.
Diyelim ki davul.cclub.metu.edu.tr makinası üzerindeki
/home/gorkem dizininde yeralan tüm dizin ve dosyaları görmek
için:
$ rsh davul.cclub.metu.edu.tr ls -al /home/gorkem
komutunu girmelisiniz. rsh komutundan sonra uzaktaki sistemin ismi,
ardından da çalıştırılacak olan komut gelmelidir. Diğer bir örnek
$ rsh davul.cclub.metu.edu.tr cat README | lpr
karşı sisteme giriş yapmadan README dosyasını yazıcıdan çıkmasını
sağlayacaktır.