Linux Dosya Sistemi ve İzinler
Linux üzerindeki dosya yapılarına ve dizin izinlerine değineceğim. Dosyalar bir kullanıcıya yâda bir guruba aittir. Dosyalara kullanıcı, tanımlanan gurup veya diğer kişiler erişim sağlayabilirler.
Dosya oluşturarak incelememize başlayalım. mkdir komutu dosya oluşturmayı sağlar. Dosyamızı nerede oluşturacaksak bunu belirterek devam edelim. mkdir /deneme dediğim zaman kök dizine deneme adlı dosyayı oluşturmuş oldum. Eğer ” / ” koymadan yapmış olsaydım bulunduğum dizine deneme diye bir dosya oluşturacaktı.
Ls komutu bağlı olduğum dizindeki içeriği gösterecektir.
ls komutunun çeşitli kullanımı mevcuttur. Bir dizinde çalışıyorsunuz başka dizinde olan dosyaları görüntülemek istiyorsanız. ls dedikten sonra dizini belirtiniz örnek ls /etc gibi dizini değiştirmeden size etc nin altındaki dosyaların içeriğini karşınıza getirecektir.
Ls komutu sadece listelerken ls -la komutu ise ayrıntılı olarak izinler, boyutları, oluşturma tarihi ve gizli dosyaları getirecektir. Genel ve en sık olarak kullanılan ls -la dır.
Oluşturduğumuz dosyanın içine gidebilmek için cd komutunu kullanırız. Başka bir dizindeyse dosyamız / deneme diye ulaşabiliriz eğer aynı dizinin içinde bir dosyanın içine girmek istiyorsak ” / ” yazmamıza gerek yok. Deneme dizininin içinde bir melih diye dosya olduğunu düşünelim farklı bir yerden de buraya erişmek için cd /deneme/melih yazabilirim eğer deneme dizinin içindeyken melih dizinine erişmek istiyorsam cd melih yazmam gerekecek. Aynı dizin içindeyken ” / ” kullanmıyoruz.
Cd komutu kullanarak birçok dosyanın içine erişim sağladık. O kadar çok dosya oldu ki nerede olduğumuzu hatırlamıyorsak eğer ” pwd ” komutunu kullanıyoruz. Pwd komutu ana dizin den başlayarak bütün dizinleri listeleyecektir bize.
Echo komutunu kullanarak bireyler yazalım. echo yazdıktan sonra istediğiniz i yazınız yama işleminiz bittikten sonra ” > ” yaparak hangi isimde ve formatta yazacaksak onu yazalım.
Echo komutuyla oluşturduğumuz dosyamızı açalım. Dosyaları açmak için editörleri kullanabilirsiniz. Editörlerin bir kaç tanesi vi, gedit ve benzeridir. Ben ise kullanımını sevdiğim joe komutu. joe komutunu kullanarak açıyorum oluşturduğum deneme.txt dosyamı.
joe editörü kullanarak açtığım dosyanın içeriğini görüyorum. Echo komutunu kullanarak içeriğine ekleme yapmıştır. joe editörüyle açtığım deneme.txt dosyamın içeriğine eklemeler yapabilirim. Her editörün kullanımı kendine göre kolaylığı ve zorluğu vardır. Vi editörü kullanımı pek kolay değildir ama her Linux sürümünde standart olarak gelmektedir. Joe editörünün kullanımı daha kolaydır fakat buda standart olarak gelmemektedir. İstediğiniz zaman indirip kurabilirsiniz rpm paketi olarak yada sourceforge da bulabilirsiniz ücretsiz olarak. Gedit editörü görseldir Windows sistemlerde notepad e karşılık gelebilir.
Kopyalama komutunu yapalım. cp dedik den sonra kopyalamak istediğimiz dosyayı boşluk bıraktıktan sonra kopyalamak istediğimiz adı yazalım.
Silme işlemi yapmak içinse rm komutunu kullanıyoruz. Silmek istediğiniz dosyayı rm dosya adı şeklinde yazarız daha sonrasında onaylamamız için uyarı gelecektir. Eğer silmek istediğimiz dosyadan eminsek “-rf ” komutunu kullanarak yapabiliriz. rm deneme.txt -rf dersek deneme dosyasını onay gerektirmeden silecektir. Eğer bir dizin silmek isterseniz rmdir komutunu kullanmanız gerekmektedir. Rmdir dizin adı şeklinde yapabilirsiniz yâda gene aynı şekilde rm dizin adı -rf şeklinde yapabilirsiniz.
Dosya taşıma işlemi. Taşıma komutunu da ” mv ” la yapıyoruz. mv dosya adı değiştirmek istediğimiz dosya adı şeklinde yapabiliriz. mv deneme.txt melih.txt dersek sadece dosya adını aynı dizin içinde değiştirecektir ama içeriğinde herhangi bir değişim yapmayacaktır. Eğer farklı bir dizine taşımak istiyorsanız mv deneme.txt /var/log/maillog gibi yaparsak dosyamızı /var/log/maillog dizinine taşıyacaktır. Bu tarz işlemleri yapmak için aynı dizinde olmanıza gerek yoktur bütün kopyalama silme ve taşıma işlemlerinde farklı bir dizinde olsanız işlem yapabilirsiniz. Kök dizindeyken örnek verelim mv /deneme/melih.txt /var /log/maillog gibi.
Bir dizinden üst dizine geçmek veya root dizine geçmek için cd komutunu kullanarak yapıyoruz. Bir üst dizine geçek için cd .. Kullanıyoruz root dizine geçmek için ise sadece cd yazmamız yeterli.
ls -la da daha önce dediğimiz gibi ayrıntılı listeleme yapacaktır. Sadece bildiğimiz bir dosya içinde de ls -la dosya adı şeklinde listeleyebiliriz.
İzin yapılarını inceleyelim birazda. Linux da izinler okuma, yazma ve çalıştırma şeklinde dır. Aşağıda gördüğümüz gibi rwx ” r ” read ” w ” write ” x ” execute okuma, yazma ve çalıştırma şeklindedir. rwxrwxrwx şeklinde gördüğünüz yapı 3 bölüme bölünüyor. Birinci bölüm kullanıcı ikinci bölüm gruplar üçüncü bölüm ise diğerleri. Her bölüme ayrı ayrı okuma yazma ve çalıştırma izni verebilirsiniz. Her bir gurubun okuma, yazma ve çalıştırma izinlerinin bir değeri vardır.
Kullanıcının izinlerinde okuma 400 yazma 200 çalıştırma 100
Grupların izinlerinde okuma 40 yazma 20 çalıştırma 10
Diğerlerinin izinlerinde okuma 4 yazma 2 çalıştırma 1
Örnek bir izin tanımlayalım değerlerinden.
Grup un okuma ve yazma izni olsun kullanıcının ise sadece çalıştırma izni olsun, toplamda 160 dır sadece bu değeri baz alarak izin verebiliriz.
İzinleri chmod la değiştirebiliyoruz, melih.txt dosyasının bütün izinlere sahipken sadece kullanıcıya okuma izni veriyorum. Okuma iznini değerini bildiğim için sadece değer vererek yapabilirim. chmod 400 melih.txt dersem melih.txt dosyasına dosya sahibinin okuma izni olacaktır.
Chown kullanarak dosyanın sahipliğini değiştirebiliriz. Root a ait olan sahipliği chown ” kullanıcı adı ” ” dosya adı ” şeklinde yapabilirsiniz. chown melih melih.txt olarak yaparsanız melih.txt dosyasının sahipliğini melih kullanıcısına vermiş oluruz.
Dosya gurubunu değiştirmek için chgrp komutunu kullanıyoruz. chgrp ” grup adı ” ” dosya adı ” şeklinde yapabilirsiniz. chgrp altun melih.txt dersek melih.txt dosyasına erişim sağlayacak olan altun gurubuna vermiş olduk.
Dosyanın gurubunu ve sahipliğini anlamak için ls -la komutunu kullanarak ayrıntılı listeleriz. İlk bölümde görünen ler dosya sahibi olanı gösteriyor ikinci bölümdeki ise erişim sağlayacak olan gurubu göstermektedir.
Değer olarak izinleri tanımlamıştık. Şimdide normal olarak izin tanımlayalım. ” r ” read ” w ” write ” x ” execute leri kullanarak izin verelim . İzin vermek için ” + ” yı izin almak için ” – ” vermeniz gerekmektedir. chmod +x melih.txt dersek eğer bütün çalıştırma izinlerini vermiş oluruz. Aynı şekilde chmod -w da ise bütün yazma izinlerini kaldırmış oluruz.
Eğer bütün izinler de değil de sadece kullanıcı, grup veya diğerlerinden kaldırma işlemi de yapabiliriz. Bunlar içinse ” u ” user ” g ” group ” o ” Other şeklindedir. Gene aynı şekilde izin vermek için + almak için se – kullanacağım. chmod go-x melih.txt dediğimde melih.txt dosyasından grup ve diğerlerinden çalıştırma izni alıyorum. chmod uo+r melih.txt dediğimde ise melih.txt dosyama user lara ve diğerlerine okuma izni veriyoruz.
Bu örnekte de chmod ugo+w dediğimiz dede bütünlüğe yazma izni vermiş oluyoruz.
Biraz olsun Linux da dosya oluşturma izinler tanıma ve başlangıç kullanımı için komutlardan bahsettim umarım yararlı olmuştur.