Dosya sistemlerinin bağlanması ve ayrılması
Önceki Dosya Sistemleri Sonraki
Dosya sistemlerinin bağlanması ve ayrılması
Bir dosya sistemi kullanılmadan önce mutlaka bağlanmalıdır. Daha sonra işletim sistemi her şeyin doğru bir şekilde çalıştığından emin olmak için çeşitli muhasebe işlemleri yapar. Unix altında bütün dosya sistemleri tek bir dizin ağacı altında gözüktüğü için, işletim sistemi yeni bağlanan dosya sistemlerini eskiden bağlanmış olan dosya sistemlerinin alt dizinleriymiş gibi gösterir ve bu şekilde işlem yapar.
Aşağıda Şekil 7.1'de kendi kök dizinleri altında bulunan birbirinden bağımsız üç dosya sistemi gösterilmektedir. Son iki dosya sistemi sırayla, birincinin /home ve /usr dizinleri altına bağlanırsa Şekil 7.2'deki gibi tek bir dizin ağacı elde ederiz.
Şekil 7.1. Üç ayrı dosya sistemi
Şekil 7.2. /home ve /usr bağlı.
Aşağıdaki örnekte gösterildiği şekilde bu bağlama işlemleri yapılabilir.
# mount /dev/hda2 /home
# mount /dev/hda3 /usr
#
mount komutu iki argüman alır. Birincisi diske uygun bir aygıt dosyası veya dosya sistemini içeren bir disk bölümüdür. İkincisi ise bağlandığı dizindir. Bu işlemler yapıldıktan sonra bu iki aygıtın içerikleri sanki disk üzerindeki /home ve /usr dizinlerinin içerikleriymiş gibi kullanılabilirler. Şayet bağlama işlemi başka bir dizin altına yapılmış olsaydı, aygıtların içeriklerini görebilmek için o dizinlerin altına bakmamız gerekecekti. Ayrıca aygıt dosyası ve bağlanılan dizin arasındaki farkı mutlaka göz önünde bulundurmalıyız. Unutmayın ki aygıt dosyası, (/dev/hda2) diskin ham içeriğini verir. Bağlandığı dizin ise (/home) disk üzerindeki dosyalara ulaşım imkanı verir. Disk bölümünün bağlandığı dizine bağlama noktası adı verilir.
Linux pek çok dosya sistemini destekler. mount dosya sisteminin türünü tahmin etmeye çalışır. İsterseniz -t fstype seçeneğini dosya sisteminin türünü belirtmek için kullanabiliriz. Bazı zamanlar bu gerekli olmaktadır, mount komutu dosya sistemini tanımlayamayabilir. Örneğin bir MS DOS disketini bağlamak için şu komut kullanılır:
# mount  -t msdos  /dev/fd0  /floppy
#
Bağlantı dizini mutlaka sistemde var olmalı ve içi boş olmalıdır. İçerisinde her hangi bir dosya bulunursa bağlama işlemi sonucunda ulaşılamaz hale gelir (hali hazırda açılmış dosyalar ve başka bir dizinden sabit bağ verilmiş olan dosyalar hala ulaşılabilir durumdadırlar). Örneğin; bazı kişiler /tmp ve /var/tmp dizinlerini eş anlamlı olarak kullanırlar ve /tmp dizinini /var/tmp dizinine sembolik bağ olarak atarlar. Sistem açılırken, /tmp dosya sistemi bağlanmadan önce kök dosya sisteminde bulunan /var/tmp dizini onun yerine kullanılır. /var dizini bağlandığı zaman, bu kök dosya sistemi altındaki /var/tmp dizinini ulaşılmaz kılar. Şayet /var/tmp dizini kök dosya sistemde yok ise, /var dizinini bağlamadan geçici dosyaları kullanmak imkansız olacaktır.
Dosya sistemine her hangi bir şey yazmaya niyetiniz yok ise bağlama işlemi sırasında bu bağlantının salt okunur olmasını sağlayacak -r seçeneğini kullanabilirsiniz. Bu çekirdeğin her hangi bir yazım girişiminde bulunmasını ve dosya düğümleri içindeki erişim zamanlarının güncellenmesini engeller. Üzerine yazılamayan ortamları (örn; CDROM) bağlarken bu seçenek gereklidir.
Uyanık okuyucular küçük bir mantıksal problemi fark etmişlerdir. Birinci dosya sistemi (burada kök dosya sistemi oluyor) nasıl bağlanmıştır? Kök dosya sistemi açılış esnasında sihirli bir şekilde bağlanmıştır ve kullanıcı bunun her açılışta tekrar olacağına güvenmelidir. Şayet kök dosya sistemi bağlanmazsa açılış yapılamaz. Sihirli bir biçimde kök dosya sistemini bağlayan dosya sisteminin adı çekirdek içinde derlenmiştir veya LILO ya da rdev kullanılarak ayarlanmıştır.
Kök dosya sistemi ilk olarak salt okunabilir şekilde bağlanır. Daha sonra başlayan betikler onun geçerliliğini kanıtlamak için fsck programını çalıştırırlar. Şayet bir problem çıkmaz ise oku-yaz olarak tekrar bağlanır. Böylece yazma işlemlerine olanak sağlanır. fsck, oku-yaz bağlı bir dosya sistemi üzerinde yapılmamalıdır. Çünkü dosya sisteminde meydana gelen her değişiklik fsck programını etkileyecek ve çalışması esnasında sorunlar ortaya çıkmasına sebep olacaktır. Kök dosya sistemi, denetlenirken salt okunur şekilde bağlanmış olduğu için fsck herhangi bir problemi sıkıntıya girmeden giderebilir. Dosya sisteminin bellekte tuttuğu bütün bilgiler yeniden bağlama işlemi esnasında silinecektir.
Pek çok sistemde açılış esnasında otomatik olarak bağlanması gereken dosya sistemleri mevcuttur. Bunlar /etc/fstab dosyası içinde belirtilmişlerdir. Ayrıntılı bilgi fstab kılavuz sayfasında mevcuttur. Açılış esnasında bağlanılacak dosya sistemlerinin özellikleri çok çeşitli faktörlere dayanır ve bu sistem yöneticisinin şahsi ihtiyaç ve görüşlerine göre değişiklik gösterebilir. Daha ayrıntılı bilgi Açılışlar ve Kapanışlar bölümünde mevcuttur.
Bir dosya sisteminin daha fazla bağlı durumda kalması gerekmiyorsa umount komutu ile dosya sistemi sistemden ayrılmalıdır.[121] umount argüman olarak aygıt dosyası ismini veya bağlama noktası dizininin adını kullanır. Bu işlem aşağıdaki şekillerden birisi ile gerçekleştirilir:
# umount /dev/hda2
# umount /usr
#
Komutun değişik kullanımlar için kılavuz sayfalarına bakabilirsiniz. Bağlı bir disketin ayrılması zorunludur. Sakın disketi doğrudan dışarı çıkarmayın. Disk önbellekleme olayı yüzünden, gerekli bilgiler siz disketi umount komutu ile sistemden ayırana kadar diskete yazılmaz. Erken çıkarma sonucu verilerde hasar veya karışıklık meydana gelebilir. Disketten sadece okuyorsanız bu bir problem yaratmaz, fakat yazım işlemleri de yaptıysanız sonuç bir yıkım olabilir.
Sadece root kullanıcı dosya istemlerini bağlayabilir ve ayırabilir. Şayet her kullanıcı istediği bir dizine bir disket bağlarsa, sonuçta /bin/sh dizini gibi görünen bir truva atı yaratmak çok kolay hale gelirdi. Bununla beraber kullanıcılara disket bağlama izni vermek kaçınılmazdır. Bunun çeşitli yolları vardır:
  • Kullanıcılara root parolasını vermek. En kolay fakat en az güvenli seçenektir. Ağa bağlı olmayan kişisel sistemler için en uygun çözümdür.
  • Kullanıcıların dosya sistemi bağlama işlemlerini yapabilmesine izin vermek için sudo gibi bir program kullanabilirsiniz. Bu hala az güvenli bir seçenektir, sadece süper kullanıcı yetkileri herkese doğrudan verilmemiş olur.[122]
  • Kullanıcıları mtools kullanmaya sevk edin. Böylece MS-DOS dosya sistemlerini bağlamaya gerek kalmadan kullanabilirler.
  • /etc/fstab dosyası içinde bağlanması olası dizin ve aygıt dosyası adlarını uygun seçeneklerle tanımlayın.
/etc/fstab dosyası içine şu şekilde bir satır eklemek son bir alternatif olabilir:
/dev/fd0            /floppy      msdos   user,noauto      0 0
Birinci sütundan itibaren, bağlanacak aygıt dosyası, bağlantı dizini, dosya sistemi, seçenekler, yedekleme yapma sıklığını (dump tarafından kullanılır) ve açılış esnasında hangi dosya sistemlerinin fsck tarafından denetleneceğini belirten numaralar (sıfır = birşey yapma) belirtilmiştir.
noauto seçeneği açılış esnasında dosya sisteminin otomatik olarak bağlanmayacağını belirtir. user seçeneği ise bütün kullanıcılara bu dosya sistemini bağlama izni verirken güvenlik sebeplerinden dolayı, bağlanmış dizinden aygıt dosyalarının yorumlanmasına ve normal programların dahi çalıştırılmasına izin vermez. Artık her hangi bir kullanıcı msdos dosya sistemine sahip bir disketi bağlamak için aşağıdaki komutu kullanabilir:
$ mount /floppy
$
Bu disket umount komutu ile daha sonra sistemden ayrılmalıdır.
Şayet çeşitli disketlere ulaşım verilmesini istiyorsanız, farklı bağlama noktaları tanımlamalısınız. Msdos ve ext2 dosya sistemlerine sahip disketlere ulaşabilmek için /etc/fstab dosyasına şu satırlar eklenmelidir:
/dev/fd0    /dosfloppy    msdos   user,noauto  0  0
/dev/fd0    /ext2floppy   ext2    user,noauto  0  0
MS-DOS dosya sistemleri için, genellikle uid, gid ve umask dosya sistemi seçeneklerini kullanarak erişime sınırlamalar getirmek isteyebilirsiniz. Şayet dikkatli davranmazsanız, bağlı bir MS_DOS dosya sistemi için herkese en azından okuma izni vermiş olursunuz. Bu da pek iyi bir fikir olmayabilir.


[121] Tabii ki umount komutunun aslı unmount'tur. Fakat 1970'li yıllarsa "n" esrarengiz bir şekilde ortadan kayboldu. Şayet "n" yi görürseniz lütfen Bell Laboratuarlarına haber verin.
[122] Yine de bu durum kullanıcının bir kaç saniye düşünmesi ile aşılabilen bir güvenliktir. Ancak, sudo komutu, kullanıcıların belirli komutları çalıştırabilmesi için sınırlandırılabilir. Bu konu hakkında ayrıntılı bilgiyi sudo(8), sudoers(5) ve visudo(8) kılavuz sayfalarında bulabilirsiniz.
Önceki Üst Ana Başlık Sonraki
Bir dosya sisteminin oluşturulması Başlangıç  fsck ile dosya sistemi bütünlüğünün sınanması
Bir Linux Kitaplığı Sayfası