#1
|
||||
|
||||
Linux Server Dosya ve Dizin işlemleri(Güvenlik Açıkları)
Linux Dosya ve Dizin işlemleri
Tipki MS-DOS’ta oldugu gibi Linux dosya yapisinin da hiyerarsik bir yapiya sahip oldugu daha önce belirtilmisti. Temel dosya bilgisi önceki konularda anlatildiginda burada sadece dosya ve dizinlerle ilgili özelliklere deginilecektir. Erisim Haklari Erisim haklari, Linux dosya sistemi güvenliginin belkemigini olusturur. Her dosyaya ayri verilebilen erisim izinleri sayesinde çok daha rahat bir sistem gerçeklestirilebilir. Bu konuya sadece sistem görevlisi tarafindan yaklasildigi zaman çikartilabilecek bir sonuçtur. Kullanici bazinda erisim haklari bazen daha da anlamli olabilir. Yanlis kullanildiginda hos olmayan sürprizlere yol açabilir. Linux altinda üç çesit erisim hakki vardir: • Okuma Izni : Dosyanin okuma izni varsa içerigi görülebilir, dizinin okuma izni varsa içerdigi dosyalarin listesi alinabilir. • Yazma Izni : Dosyanin yazma izni varsa dosyayi degistirebilir veya silebilirsiniz. Dizine yazma izni verildiginde dizin altindaki dosyalar yazilabilir veya silinebilir. • çalistirma Izni : Dosyayi çalistirma hakkini verir. Bir dosya veya dizin ilk yaratildiginda Linux tarafindan ön tanimli bazi izinler verilir. Genellikle bu izin çalistirma ve okumadir. Dosyanin olusma aninda verilen izni degistirmek için erisim yetki kalibi olarak da bilinen umask komutu kullanilir. Erisim haklarinin disinda bir dosyanin üç izin düzeyi daha vardir. Bunla dosyanin sahibi, dosyanin grubu ve diger kullanicilardir. Dosyanin sahibi, o dosyayi olusturan kisidir. Her kullanicinin bir grubu da oldugu için, dosya olustururken kullanici hangi grupta ise dosya da o gruba ait olacaktir. Dosyanin sahibi olmayan ve grubu da dosyanin grubuyla uyusmayan sistemdeki kullanicilar ‘diger’ sinifina girerler. Dosya Izinlerinin Degistirilmesi Dosya izin bilgilerini görebilmek için ls komutu, -l parametresiyle kullanilir. Asagidaki dosya üzerindeki erisim haklarina göz atalim: -rwxr-xr-x 2 gorkem users 182 Feb 12 03:58 deneme Dosya bilgisinin an sol kisminda izin haklari yer alir. En bastaki “-“ isreti bunun düz dosya oldugunu belirtir. “gorkem”, dosyasinin sahibi; “users” ise grubudur. Ardindan sirayla uzunluk, son degistirilme tarihi ve dosya ismi gibi bilgiler gelir. Son harf kümesine dosyanin modu da denir. Solda yer alan r,w ve x karakterleri sirayla okuma, çalistirma ve yazma haklarini belirtir. En soldaki “-“ isaretini ayirdiginiz zaman geri kalan harfleri üçlü grup haline getirdigimizde; rwx r-x r-x sirayla birinci harf kümesi dosya sahiplerinin izinlerini, ikinci harf kümesi grup izinleri ve son küme de diger kullanicilarin izinlerini belirtir. Buna göre yukaridaki dosyada • rwx : Kullanici okuyabilir, yazabilir, çalistirabilir. • r-x : Grup okuyabilir, çalistirabilir fakat yazamaz. • r-x : Digerleri okuyabilir, çalistirabilir fakat yazamaz. Sol bastaki karakter “d” olsaydi, bir dizini inceliyor olacaktik. Dosyanin izinlerini degistirmek için chmod komutu kullanilir. Bu komutu kullanirken hangi izin düzeyine (kullanici, grup veya digerleri) hangi izinlerin verilecegi veya kaldirilacagi yazilir. örnek olarak yukaridaki dosyanin okuma iznini kaldirmak için; $ chmod -r deneme kullanilabilir.”-“ isareti, iznin kaldirilacagini belirtir. Izin vermek için ise “+” yazilir. Dosyanin yeni görüntüsü söyle olur: --wx--x--x 2 gorkem users 182 Feb 12 03:58 deneme sadece grubun, sadece kullanicinin veya sadece digerlerinin erisim hakkini degistirebilmek için her izin düzeyi için bir harf tanimlanmistir. Kullanici adi için “u”, grup için “g” ve digerleri için “o” yazarak belirli bir izin düzeyi için erisim hakkini degistirmek mümkün olur. Bu üç harf, izinden hemen önce yazilir. $ chmod u+x deneme (dosyanin sahibi çalistirabilir) $ chmod o+r t2sac (digerleri okuyabilir) $ chmod g-w deneme (dosyanin grubu yazamaz) Her izin için ayni zamanda izinler tanimlanmistir. Dosyanin erisim izinlerini degistirmek için izne ait sayilari kullanabiliriz. Asagidaki tabloda, her izin düzeyi (dosyanin sahibi, grubu ve digerleri) için üçer tane olmak üzere toplam 9 sayidan olusan izin numaralarini görebilirsiniz. Bir izni vermek için sirayla numaralari toplayin. örnegim sahibin okumasi (400), yazmasi (200), çalistirmasi (100), grubun okumasi (40), çalistirmasi (10) ve digerlerinin okumasi (4) ve çalistirmasi (1) için kullanilan rakamlarin toplami 755’tir. $ chmod 755 deneme 400 sahibi okur 200 sahibi yazar 100 sahibi çalistirir 040 grubu okur 020 grubu yazar 010 grubu çalistirir 004 digerleri okur 002 digerleri yazar 001 digerleri çalistirir Baska bir örnekte; sahibinin okumasi (400), yazmasi (100), grubun okumasi (40), digerlerinin okumasi (4) için izin numarasini bulmak için bu cümlede parantez içinde yer alan sayilari toplarsak 644 yapacaktir. $ chmod 644 deneme Aynen dosyalarda oldugu gibi, bir dizinin de sahibi ve grubu vardir. Dosyanin Sahibinin ve Grubunun Degistirilmesi Bir dosyanin sahibini sadece sistemdeki root kullanici degistirebilme yetkisine sahiptir. Dosya sahibinin degistirilmesi için chown komutu kullanilabilir. Yukaridaki dosyanin sahibi ozgur isimli kullanici ise; # chown ozgur deneme Dosyanin yeni hali söyle olur: -rwxr-xr-x 2 ozgur users 182 Feb 12 03:58 deneme chgrp komutu yardimiyla da dosyanin grubunu degistirilebilir. Yukaridaki dosyanin grubunu www yapmak için; # chgrp www deneme komutu kullanilabilir. Chown komutu, dosyanin hem kullanicisini, hem de grubunu degistirebilme özeligine sahiptir. Chown komutundan sonra kullanici ve grup isimleri aralarinda bir nokta kalacak sekilde yazilirsa; $ chown ozgur.www denem $ ls-l deneme -rwxr-xr-x 2 ozgur www 182 Feb 12 03:58 deneme Diger Dosya Sistemlerinin Kullanilmasi Bir Linux isletim sisteminde dosyalarin ve dizinlerin her birisi sabit disk, CDROM veya diger bilgi saklamaya yarayan cihazlarin birer parçasi olan “dosya sistemlerinde” tutulur. Linux’ un destekledigi pek çok dosya sistemi vardir ve bunlarin her birisinin veri depolarken kullandiklari yöntem birbirinden farklidir. Linux’ ta her dosya sistemi farkli bir dizinde tutulur ve bu dizinlerin bilgisi /etc/fstab dosyasinda yer alir. Açilis aninda bu dosyada hangi dosya sistemlerinin hangi dizinler altina yerlestirilecegi okunur ve buna göre makine açilir. Linux kendisi için özel olarak gelistirilen ext2 dosya sistemini kullanir. Bir sistem görevlisi olarak çesitli dosya sistemlerini tanimali, bu dosya sistemleri üzerinde hata olusmasi durumunda zarari en aza indirecek yolu bilmelisiniz. Bilgisayar basinda geçireceginiz zamaninizin büyük bir bölümünü dosya sistemleri üzerinde harcayacaksiniz. Mount Islemi Bir dosya sisteminin kullanilabilmesi için bos bir dizin altina yerlestirilmesi gerekir. Ancak bu gerçeklesirse söz konusu dosya sistemini olusturan dosyalar üzerinde islem yapilabilir. Bu islem mount komutu yardimiyla yapilir. Mount komutu su sekilde kullanilir: Mount -t<tip><nereye><aygit> Tip: Dosya sitemi çesidi. örnek dosya sistem çesitleri arasinda ext2, minix, msdos sayilabilir. Genellikle mount programi ne tür bir diske eristigini otomatik olarak anlayacaktir. Nereye: mount edilecek dosya sisteminin hangi dizinin altina yerlestirilecegini belirtir. Aygit: üzerinde dosya sisteminin bulundugu sabit disk CD-ROM benzeri aygit. Linux’a bagli tüm donanimlara ait bir giris,/dev dizinin altinda bulunur. Bu dizin altindaki dosyalar özel olarak tanimlanmistir ve bunlara kisaca “dügüm” adi verilir. örnegin /dev/hda2, birinci IDE sabit diskin ikinci bölümünü; /dev/tty 1 ise birinci sanal konsolu gösterir. Bir dosya sistemini erisilebilir hale getirebilmek için hangi dügüm ismine sahip oldugunu bilmemiz gerekir. örnek olarak CD-ROM için /dev/cdrom, birinci disket sürücü için /dev/fd0 gibi. CD-Rom sürücüsünü /mnt altina mount etmek için # mount -t iso9660 /dev/cdrom/mnt yazilir. Eger çekirdekte CD-ROM dosya sistemi destegi varsa ve sistem açilirken çekirdek CD-ROM’u tanimissa /mnt dizini altinda CD’deki dosya sistemi yerlestirilir. Buna benzer bir sekilde MS-DOS disket içeren dike sürücüyü ve üzerinde ext2 dosya sistemi bulunan ikinci IDE sabit diskin birinci bölümünü sirasiyla /-mnt/disk dizinlerine bindirmek için; # mount -t msdos /dev/fd0/mnt/disket ve # mount -t ext2 /dev/hdb1/mnt/disk yazilabilir. Bir mount isleminin tersini yapmak ve dosya sistemini erisilmez kilmak için umount komutu kullanilir. /disk altindaki /dev/hdb1 sabit disk bölümünü umount etmek için # umount /disk veya # umount /dev/hdb1 kullanilir. Her iki yazim sekli de kabul edilir. Son olarak o an sistemde bindirilmis halde bulunan tüm dosya sistemlerini görmek için mount komutunu parametresiz yazalim. Mount veumount komutlari ile bir dizin yapisini disk üzerinde konumlandirirken veya ayirirken üzerinde islem yapilan dizinde bulunmamali, ya da o dizinde baska bir süreç çalisiyor olmamalidir. Aksi takdirde asagidaki hata mesaji alinir: #pwd /disk #umount/disk umount:/dev/hdb1: device is busy Yapilmasi gereken, ayirilacak dizinden disari çikip tekrar denemek. Diger bir seçenek de fuser konutunu kullnamak. Bu komut, ayirmak istediginiz dizini kullanana tüm süreçleri ekranda gösterir. Böylelikle rahatlikla yukaridaki örnekteki gibi umount islemi gerçeklestirebilir. fuser komutunun -km seçenegi ile o dizini kullanan süreçleri öldürelebilir. #cd/ #fuser/disk /disk: 78c #fuser -km/disk #umount/disk fuser komutunu kullanirken dikkatli olama gerekir, zira sistemi kilitleme noktasina getirebilir. Dosya Sistemi Bilgileri Linux açilirken mount komutu yardimiyla root dosya sistemine akleyecegi her degisik dosya sistemini /etc/fstab dosyasindan okur veislem koyar. Asagida örnek bir fstab dosyasi yer aliyor. /dev/hda2 / ext2 defaults 1 1 /swap none swap defaults 1 1 /dev/cdrom /cdrom iso9660 defaults 1 1 none /proc proc defaults 1 1 /dev/hda1 /dos msdos defaults 1 1 çekirdek açilis mesajlari içinde VFS: Mounted root (ext2 filesystem) readonly. Gibi bir satir göreceksiniz. Sistem açilirken en önce /dosya sistemini mount eder. Bu sayede bu dosya sistemi altinda yer alan ve hayati önem tasiyan yazilimlara(fsck, mount gibi) ulasir. Daha sonra yerel dosya sistemleri ve en son da ag üzerinden erisilen dosya sistemlerine (NFS) baglanir. fstab dosyasinda kullanicinin kendi dosyalarini yerlestirmedigi, fakat sistem tarafindan kullanilan swap ve proc dosya sistemleri için de mount bilgileri bulunur. Yukaridaki fstab dosyasinda ext2 dosya sistemine sahip /dev/hda2 sabit disk bölümü, / dizinini olusturuyor. MS-DOS formatli /dev/hda1 bölümü de /dos dizinine erisilebilir olarak açilil aninda eklenecektir. Sistemdeki CD-Rom sürücü /cdrom dizinini altina yerlestirilmis olup root kullanici bunu istedigi dizine koyabilir. Bu dosyaya, mount komutundaki gibi parametreler de eklenebilir. dördüncü sirada yer alan defaults parametresini yanina eklemek istedigimiz opsiyonlari yazariz. Bu parametrelerden bir tanesi de “user” olup root disindaki kullanicilara mount hakkini verir. CD-ROM sürücüyü normal sistem kullanicilarinin mount veya umount yapabilmesi için fstab dosyasindaki ilgili satiri /dev/cdrom /cdrom iso9660 defaults, user 1 1 satiriyla degistirdigimizde; defaults parametresi ise, halihazirdaki doya sistemini okunup yazilabildigini, asenkron oldugunu, üzerindeki bilgileri bloklar halinde alip verdigini (buna diger örnekler CD-ROM ve disket sürücüleridir), içerdigi programlarin çalistirilabilir oldugunu ve normal kullanicilarin mount, umount yapamadigini gösterir. Dosya Sistemi Desteginin Eklenmesi çekirdek tarafindan hangi dosya sistemlerinin desteklendigi /proc/filesystems dosyasindan ögrenilebilir. Diger modüller gibi dosya sistemlerinin hemen hemen tamami çekirdege disaridan eklenen modüllerden olusur. $ cat /proc/filesystems ext2 vfat nodev proc iso9660 nodev smbfs yukaridaki satirlar, çekirdekte ext2, vfat, proc, iso9660 ve smbfs dosya sistemi destegi oldugunu gösteriyor. Linux’de tüm modüller /lib/modules/preferred dizini altinda yer alir. Bu dizine geçin. $ ls block fs misc net scsi cdrom ipv4 modules.dep pcmcia block: Blok aygitlara iliskin modüller cdrom: Degisik tipteki CD sürücü modülleri fs: Dosya sistemi modülleri misc: çesitli tipteki modüller (ses karti, yazici) net: Ag modülleri pcmcia: PCMCIA kartlari modülleri scsi: SCSI aygit modülleri normalde pek çok modül sizin isteyiniz disinda çekirdege eklenir ve çikartilir. Bizim isimize yarayacak modüller fs dizini altindadir. Dosya Sistemi Yaratilmasi ve Kontrolü Bazen MS-DOS altinda olusturulamayan dosya sistemlerini (ext2 gibi) olusturmak gerekebilir. Linux altinda bir dosya sistemini olustururken ayni zamanda bunu kontrol eden programlar vardir. Bunlarin en çok kullanilani, Slackware sürümünde gelen mkfs/’tir. Mkfs ile Linux native (ext2) dosya sistemi olusturmak için mkfs.ext2 programi kullanilir. Mkfs.ext2<aygit><blok-sayisi> “aygit” yerine üzerine dosya sistemi kurulacak olan cihazin /dev dizini altindaki dügüm dosyasinin ismi yazilir. Blok sayisi yerine, fdisk yazilimindan o bölümün kaç blok oldugunu ögrenip bu sayi girilmelidir. Ibr blok 1024 bayttan olusur. örnegin; # mke2fs/dev/hda3 163829 komutu, /dev/hda3 disk bölümünde ext2 dosya sistemini kurar. Bu komutu kullanmadan önce iyi düsünülmelidir, zira burada yer alan tüm dosyalar silinir ve bu hatanin geri dönüsü olmaz. Asagidaki komut ile ibr disket üzerinde ext2 dosya sistemi kuruluyor. # mke2fs/dev/fd0 1440 mke2fs ile mkfs.ext2 komutlari aynidir. Benzer sekilde, MS-DOS dosya sistemi yaratmak için mkfs.msdos, minix dosya sistemi yaratmak için mkfs.minix kullanilabilir. Blok sayisi girilmez ise mke2fs bunu otomatik olarak bulacaktir. Herhangi bir sebepten dolayi diskte bozulma ve veri kaybini aza indirmek için de yazilimlar vardir. Fsck ile dosya sistemi kontrolü yapilabilir. Fsck ile ext2, dosfsck (veya fsck.msdos) ile MS-DOS formatli alanlar kontrol edilir. Linux:?# fsck /dev/hda2 Parallelizing fsck version 0.5b (14-Feb-95) E2fsck 0.5b, 14-Feb-95 for EXT2 FS 0.5a, 95/03/19 /dev/hda2 is mounted. Do you really want to contunie (y/n)? Yes Pass1: checking inodes, blocks and sizes Pass2: checking directory structure Pass3: checking directory connectivity Pass4 checking reference counts Pass5 checking group summary information Fix summary information<y>? Yes Block bitmap differences:-46486 -46487 -46489 -46490. FIXED Free blocks count wrong for group 5 (2803, counted=2808). FIXED Free blocks count wrong (16326, counted=16331). FIXED /dev/hda2: ***** FILE SYSTEM QWAS MODIFIED ***** /dev/hda2: ***** REBOOT LINUX ***** /dev/hda2:3494/29632 files, 42904/59235 blocks Bir dosya sistemini kontrol etmeden önce okunan bölüm root dosya sisteminden ayrilir ve kontrol isleminden sonra kapatilip tekrar açilir. Debugfs programi, dosya sistemi parametrelerini incelemek için kullanilir. Disk üzerine dogrudan erisim yaptigi için dikkatli kullanilmalidir. Ext2fs yardimiyla kurtarilamayan bazi dosyalar (özellikle silinmis dosyalar) debugfs yardimiyla kurtarilabilir. Sembolik Baglantilar Bazi durumlarda, bir dosyayi olusturup bu dosyanin baska bir dosyayi isaret etmesi istenebilir. Genellikle sistem yöneticileri tarafindan kullanilan sembolik baglanti yardimiyla bir dosya veya dizin, bunlara karsilik gelen baska bir dosya veya dizin olarak gösterilir. Asagida sembolik baglanti örnegi yer aliyor. Sistem görevlisi, /root dizini altindayken /usr/scr/linux dizinine geçmek istiyor. /usr/scr/linux dizinine isaret eden bir baglanti kurmak için ln komutu kullanilir. -s parametresi, bu baglantinin sembolik olacagina isaret eder. ln-s<nereye-baglanti-yapilacak><hangi-isimle-yapilacak> linux:?# ls-l total 116 drwxr-xr-x 2 root root 1024 Feb 14 08:13 kernel -rw-r--r-- 1 root root 115695 Sep 15 1994 lodlinv15.zip drwx------ 2 root root 1024 Jan 7 1980 mail -r-r--r-- 1 root root 0 Feb 15 08:14 typescript linux:?#ln-s /usr/scr/linux linux linux:?3ls-l total116 drwxr-xr-x 2 root root 1024 Feb 14 08:13 kernel -rw-r--r-- 1 root root 115695 Sep 15 1994 lodlinv15.zip drwx------ 2 root root 1024 Jan 7 1980 mail lrwxrwxrwx 1root root 9 Feb 15 08:14 linux -> /usr/scr/linux -r-r--r-- 1 root root 0 Feb 15 08:14 typescript Bu islemden sonra kullanicinin /usr/scr/linux dizinine geçmesi için cd linux” yazmasi yetecektir. Sembolik baglanti dosyasini digerlerinden ayiran, satirin en solundaki l karakteridir. Sabit Baglantilar Eger –s parametresini kullanmazsaniz, ln komutu iki dosya arasinda sabit baglanti (hard link) koyacaktir. # ln /etc/group /etc/group2 #ls –al /etc/group* -rw-r—r- 2 root root 390 Mar 17 20:15 /etc/group -rw-r—r- 2 root root 390 Mar 17 20:15 /etc/group2 /etc/group dosyasi üzerinde yapilacak tüm degisiklikler /etc/group2 dosyasinada aninda yansitilir. Sabit baglantilari sistem yöneticileri genelde önemli sistem dosyalarinin (/etc/paswd, /etc/shadow vb.) bir kopyasini tutmak için kullanir. Dosya Arsivleme ve Sikistirma Linux altinda dosya arsivlenmesi ve sikistirilmasi neredeyse belirli ve standartlasmis birkaç komut ile gerçeklestirilir. tar komutu yardimiyla istenilen dosyalar arsivlenebilir, bunlarin üzerine yenileri eklenebilir, istenildigi zaman da tekrar açip eski haline getirilebilir. GNU gzip komutu ise dosyalarin sikistirilmasi (zip) ve sikistirilmis dosyalarin açilmasi (unzip) islemlerini yapabiliyor. Fazla disk alani yoksa bu iki komut her zaman ise yarayacaktir. Dosya Arsivleme Tar (tape Archive) programi, bir veya birden fazla dosyayi tek bir forma sokar. Genellikle bir dizin ve bu dizinin altinda yer alan tüm alt dizinleri bir araya getirmek için kullanilir tar, dosyalarinin üzerinde sikistirma islemini normalde uygulayamaz. Fakat tar’in GNU sürümü (Linux’ta kullanilan) bu islemi gzip kullanmadan da yapabilir. Tar konutuna bir örnek verilecek olursa; $ tar -cf arsiv.tar tmp/ bu komut, -c (create archive) parametresi yardimiyla tmp dizini altindaki herseyi pakatleyip arsiv.tar ismli dosyaya yollar. -f parametresi, hangi dosyaya yazilacagini belirtir. Istenldigi zaman dosyayi tekrar açmak istendiginde: $ tar -xf arsiv.tar koutu kullanilir. -x (extract) parametresi, -f ile belirtilen dosyayi açacaktir.-r opsiyonu ile dah önce yaratilmis bir arsive dosya eklenebilir. Böylece dosyayi açma ve tekrar arsiv olusturma isleminden kurtulunmus olur. # $ tar -rf arsiv.tar ekleme.txt dosyanin içerigini önceden görebilmek için -t parametresi kullanilir. Bazi durumlarda arsivlenmis yazilim kendine ait bir dizin açmak yerine içerdigi dosyalari bulundugu yere yazabilir. Tar -tf arsiv.tar Hangi dosyalarin açildigini ekranda görebilmek için -v parametresi eklenir: #tar-zcvf tmp.tgz/tmp tar:Removing leading /form absolite path names in the archive. tmp/ tmp/tar-error tmp/.X11-unix/ tmp/rc.inet1.Old tmp/networks.OLD tmp/linux/ tmp/linux/fss.txt tmp/lilo.conf tmp/PKGTOOL:REMOVED asagidaks komut, arsivlenen dosyalari diske kaydetmaye yariyor. Bunun için temiz bir disket yuvasina yerlestirilir ve asagidaki satir yazilir. #tar -cf/dev/fd0 tmp/ tmp dizini altindaki her sey diskete kaydedilmistir. Açmak için bilinen yöntem kullanilir. #tar -xf/dev/fd0 Dosya Sikistirma ve Açma Dosya sikistirma amaciyla sikça kullanilan iki yazilim vardir: gzip ve compress. Her iki yazilimda da Slackware Linux dagitiminda bulunmaktadir. GNU’nun dagitimi olan gzip, tar ile birlikte kullanilan ve dosya sikistirma ve arsivlemede neredeyse standart hale gelmis bir program. Bir dosyayi sikistirmak için parametre girmeden gzip komutunun ardindan bir dosya ismi yazildiginda; $ gzip alvis $ ls-al elvis.gz gzip ile sikistirma dosyalarinin sonu .gz ile biter. Bunlari açmak için gunzip komutu kullanilir $ gunzip elviz.gz compress ve unsompress de sirayla bir dosyayi sikistirmak ve açmak için kullanilir. Aslinda Linux’ta uncompress adinda bir yazilim yoktur, bu dosya ismi compress dosyasina baglantilidir compress il sikistirilan dosyalarin sonu .Z ile biter. $ ls-al web.html -rw-r--r-- 1 gorkem users 41450 Jan 27 13:40 web.html $ compress web.html $ls-al web.html.Z -rw-r--r-- 1 gorkem users 18906 Jan 13:40 web.html.Z yukaridaki web.html dosyasini sikistirdigimizda dosyanin boyutu 42450 bayttan 18906 bayta indi. Açmak için: $ uncompress web.html.Z Bir dosyanin uzantisindan ne tür bir dosya oldugu anlasilamaz ise file komutu yardima kosar. Linux’ta belirli uzantili dosyalarin basi bilinen bir harf veya harf grubu ile baslar. File komutu dosyanin basindaki karakterleri kontrol ederek ve bulari bir listeyle(/etc/magic) karsilastirarak dosyanin ne tür oldugunu söyler. #file tmp.gz tmp.tgz:gzip compressed data-deflate method,last modified:Sat Feb 15 08:21:50 1997 os:Unix # file tmp.tar.Z tmp.tar.Z:compressed data 16 bits Dosya Türleri .Z Sikistirilmis dosya (compress ile) .tar Arsivlenmis dosya .gz Sikistirilmis dosya (gzip ile) .bz2 Sikistirilmis dosya (bzip ile) .tgz tar ve gzip yardimiyla silistirilmis ve arsivlenmis dosya .txt düz metin dosya .html HTML dosyasi .htm HTLM dosyasi .ps PostScript dosyasi .au ses dosyasi .wav bir baska ses dosyasi .xpm resim dosyasi .jpg Jpeg formatli resim dosyasi .gif Gif formatli resim dosyasi .png resim dosyasi .rpm RPM dosyasi .h C/C++ baslik dosyasi .c Cdosyasi .c++ C++ dosyasi .cxx C++ dosyasi .o C obje dosyasi .pl Perl dosyasi .tcl TCL/tk betigi (script) Birlikte Kullanim ftp adreslerimde Linux için yer alan yazimlar genellikle tar ve gzip, nadiren de ta ve compress ile sikistirilip arsivlenerek saklanirlar. çünkü ta komutu tek basina arsivi skikstirmaz, bu islem için gzip veya compres kullanilir. Bunlarin açilabilmesi için tar komutu ve birkaç parametre yeterli olur. $ ls netscape-4.0.linux-elf.tar.gz yukaridaki dosya önce tar ile arsivlenmis, ardindan gzip ile sikistrilmis. Tek adimda bu iki dosyayi açmak için tar dosyasina x ve f parametrelerinin disinda z parametresi de eklenir. $ tar-zxf netscape-4.0.linux-elf.tar.gz $ls netscape-4.0.linux-elf eger dosya sikistirilirken compress komutu kullanilmissa z yerine Z parametresi yazilir. $ ls folder.tar.Z $ tar-Zxf folder.tar.Z $ ls folder benzer sekilde, bir dosyayi ayni anda hem tar ile arsivlemek, hem de sikisrtirmak istersek c ve f parametreleri disinda compress ile Z, gzip ile z parametrelerini girmek yeterlidir. Asagida sirayla gn-gopher dizisinin önce tar ve gzip ile,, ardindan tar ve compress ile arsivlenmesi görülüyor. $ ls gn-gopher/ $ tar-zcf gopher.tgz gn-gopher/ $ tar-Zcf gopher.tar.Z gn-gopher/ Dizin Tarama Linux isletim sistemi kuruldugu anda, yünlerce dizin altinda binlerce dosya olacaktir. Find komutu, bu dosyalarin arasinda tarama yapabilmek için gelistirlmistir. Bu komutla sadece dosya sistemlerine degil, dosyanin sahibi, eriim haklai, son erisim tarihi gibi verilere de ulasmak mümkündür. Find komutunun en ik kullanilils sekli sudur: Find<dizin-ismi>-name<ne-aratiliyor> Dizin ismi yerine tarancak olna dosyanin bulundugu dizin ismi yazilir. -name parametresinden sonra ise aranana dosyanin ismi girilir. Burada “*” ve “ *” gibi joker karakterleri de kullanilabilir. Asagida, find komutunun kullanimina iliskin birkaç örnek yer aliyor. $ find .-name “*.html” (bulundugunuz dizinden itibaren sonu.html ile biten dosyalariarar) $ find/home/halil-name “screeen” (/home/halil dizininden itibaren screen isimli dosyalari arar) Bu komut, -type d parametresi yardimiyla sadece dizin isimleri rarsinda arama yapar. $ find /usr/-name “linux” -type d find komutuna bir alternatif olan locate komutu ile dosyalar çok kisa bir sürede taranabilir. Update koutu, her sabah belirli bir saatteki tüm dosya ve dizin isimlerini bir veri tabanina yükler. Daha sonra bu dosyada yer alan belirli bir dosya veya dizin ismi ile arayabilirsiniz: # locate pico /usr/bin/pico /usr/man/man1/pico.1.gz Yukaridaki komut ile içinde pico kelimesi geçen dosyalar bulunur. mtools MSDOS Arabirimi Linux altindan, MS-DOS formatli disketlere ulasmayi kolaylastiran paketin ismi mtools olarak biliniyor. Bu isim, paketin tüm komutlarinin ilk harfinin “m” olmasindan kaynaklanmis. Paketle birlikte gelen çesitli yardimci programlar sayesinde MS-DOS formatli diskette yer alan dosyalar listelenebilir, silinebilir, disket formatlanabilir, hatta disketin kimligi degistirilebilir. Son çikan mtools paketi, 2MB formatli disketleri de taniyabiliyor. Asagida, mtools paketinden çikan bazi komutlar ve örnek kullanimlari gösteriliyor. mdir : disket içerigini görüntüler. Linux:? mdir a: Volume in drive A i SYSTEM_BT Directory for A:/ IO SYS 40566 9-30-93 6:20a MSDOS SYS 38138 9-30-93 6:20a AUTOEXECBAT 91 3-29-95 10.23a NDD <DIR> 3-29-95 10.26a CHKLIST MS 81 11-07-96 7:00p VGA_45 <DIR> 3-29-95 10:28a YARDIM <DIR> 3-29-95 10:17a UTIL <DIR> 3-29-95 10:17a VIRUS <DIR> 3-29-95 10:17a 9 File(s) 291328 bytes free linux:?# mcopy : Bir dosyayi Linux’tan diskete, disketten linux’a aktarir. Linux:?# mcopy a:/autoexec.bat. Copying AUTOEXEC.BAT mdel : DOS dosyasini siler. mformat : Disketi formatlar. mmd : Disket üzerinde dizin olusturulur. MSDOS mtools arabirimi ayni zamanda VFAT tipi uzun dosya isimlerini de ekranda gösterebilir. Eger dosya ismi, tek bir Dos ismi içine sigmiyorsa ve 8+3 kuralini bozuyorsa uygun bir kisa isim yaratilir. Bunun yaninda mtools’un 2MB’lik disketleri okuyabilme özelligi de vardir. Mtools paketinin konfigürasyon dosyasi /etc/mtools.conf’tur. bu dosyanin kullanimi için mtools1) man dosyasindan yararlanabilirsiniz. |
Benzer Konular |
||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
sedoist'i Ağlarken Yakaladık | Thorin | Harika Şakamatik | 3 | 26 September 2009 12:46 |
Sibelius V4.0 (Müzik Programı) | ceyLin | Proğram Arşivi | 0 | 19 December 2008 20:25 |