Linux Dosya ve Dizin İşlemleri

'Linux işletim sistemi' forumunda semyav5mitq tarafından 10 Ocak 2009 tarihinde açılan konu

  1. Sponsorlu Bağlantılar
    Linux Dosya ve Dizin İşlemleri konusu Linux Dosya ve Dizin İş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 ERRE 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. “ERRE”* 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 bu şekilde gelmekte.


    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 ERRE 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 GİRAY isimli kullanici ise;


    # chown GİRAY deneme


    Dosyanin yeni hali söyle olur:


    -rwxr-xr-x 2 GİRAY 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 GİRAY.www denem
    $ ls-l deneme
    -rwxr-xr-x 2 GİRAY 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


    # 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 ve umount 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* Dosya Sistemi Desteginin Eklenmesi* Dosya Sistemi Yaratilmasi ve Kontrolü* Sembolik Baglantilar* Sabit Baglantilar* Dosya Arsivleme ve Sikistirma* Dosya Arsivleme* Dosya Sikistirma ve Açma* Dosya Türleri* Birlikte Kullanim* Dizin Tarama* mtools MSDOS Arabirimi* Hakkında detaylı anlatımlarım ileri günlerde olacaktır lütfen diğer ders konularını bekleyin* diğer ders konularımız ile birlikte yukarıda anlatılanların tamamını gerçekleştirmiş olacaksınız...
     
  2. Google

    Google Özel Üye

    paylaşım için teşekkürler
     

Bu Sayfayı Paylaş