Linux Bölüm – 1

Bu yazı serisinde elimden geldiğince linux anlatmaya çalışacağım. Öğrenmesi oldukça keyifli, açık kaynak, oldukça esnek ve özgür bir işletim sistemi olduğunu gönül rahatlığıyla söyleyebilirim. Lafı daha fazla uzatmadan hızlı bir giriş yapmak istiyorum. Haydi başlayalım.

Dosya Sistemi Ve İzinler

UNIX Dosya Sistemi dosyalara ve dizinlere erişimi yönetir ve kontrol eder. Açılan ve kapatılan dosyaların kaydını tutar ve sabit diskteki dosyaları yönetir. Hiyerarşik bir dosyalama sistemi vardır. Herşey root’tan türemektedir. Her dizinin bir parent dizini ve muhtemelen bir child dizini bulunmaktadır. UNIX’te herşey dosyadır bir dizin bile aslında özel bir dosya türüdür. Kullandığımız klavye bile bir dosyadır(/dev/kbd).

Tabi bu dosyaların izinleri ve sahiplikleri de var haliyle. Örneğin bir kullanıcı başka bir kullanıcının sahip olduğu dosyayı o kullanıcı izin vermiyorsa açamaz, okuyamaz ve o dosyaya yazamaz.

Her kullanıcıya özel bir id numarası vardır (UID). Her kullanıcının içerisine dahil olduğu bir grup vardır ve bu gruplarında id numaraları bulunmaktadır(GID). Bir grup izni sadece o grup içerisinde bulunan kullanıcılar için geçerlidir. Diyelimki bir dosyamız var bu dosyanın adıda örnek.txt olsun. Bu örnek.txt adlı dosyanın izinleri rwxrwxr– şeklinde olsun.

  • r = Read (Dosyanın okuma izni olup olmadığı)
  • w = Write (Dosyanın yazma izni olup olmadığı)
  • x = Execute (Dosyanın çalıştırılabir olup olmadığı)

İlk üçlü dosyaya sahip kullanıcının izinlerini tanımlar. Bu örnekte ki kullanıcı bu dosyayı okuyabiliyor, yazabiliyor ve çalıştırabiliyor. İkinci üçlü ise grup izinlerini tanımlar. Grup ve kullanıcı izinleri bu örnekte aynıdır. Son üçlü ise geri kalan diğer insanların izinlerini tanımlar. Bu örnekte geri kalan insanlar sadece bu dosyayı okuyabiliyor. Bu dosya izinleri değiştirilebilir. Birazda bundan bahsedelim.

Chmod: Change Mode(Permissions)

Dosya izinlerini ayarlamak için kullanacağımız chmod komutunu kullanabilmek için o dosyanın sahibi olmamız şart. Komutun kullanımı ise chmod [izin] [dosya ismi] şeklindedir.

  • 1 = Dosya çalıştırılabilir
  • 2 = Dosya yazılabilir.
  • 3 = Dosya hem çalıştırılabilir hem yazılabilir.,
  • 4 = Dosya okunabilir.
  • 5 = Dosya hem okunabilir hem çalıştırılabilir.
  • 6 =Dosya hem okunabilir hem yazılabilir.
  • 7 = Dosya hem okunabilir hem çalıştırılabilir hem yazılabilir.

Yukarıdaki dosya izinlerini kullanarak bu işlemi gerçekleştirebiliriz.Aynı zamanda bu özellikleri sembolize edebiliriz.

  • +x = Herkes çalıştırabilir
  • -x = Herkesten çalıştırma iznini çıkartır.
  • +w = Herkes yazabilir.
  • -w = Herkesten yazma iznini çıkartır.
  • +r = Herkes okuyabilir.
  • -r = Herkesten okuma iznini çıkartır.
  • u = Kullanıcı izinleri.
  • g = Grup izinleri.
  • o = Geri kalanlar için izinler.

Syntax yapısı hakkında örnekler yapalım.

  • chmod 777 ornek.txt = Kullanıcı, gruplar ve geri kalan herkes için okuma, yazma ve çalıştırma izni tanımladık.
  • chmod ugo+rwx ornek.txt = Kullanıcı, gruplar ve geri kalan herkes için okuma, yazma ve çalıştırma izni tanımladık.
  • chmod 771 ornek.txt = Kullanıcı okuyabilir yazabilir çalıştırabilir, grup üyleri okuyabilir yazabilir çalıştırabilir, gerikalan herkes sadece çalıştırabilir.
  • chmod ug+r ornek.txt = Kullanıcı ve grup mensuparı sadece okuyabilir.

Linux Dosya Sistemi Turu

/

En üst dizindir ve başlangıç noktasıdır. Yanlızca root kullanıcısı burada yazma yetkisine sahiptir.

/bin ve /usr/bin

Bu dizinlerde dosyalar binary yada shell formatındadır. Çalıştırılabilir yazılımlar bu dizinlerde tutulurlar. UNIX ilk yazıldığı zaman /bin ve /usr/bin iki farklı dizindi fakat günümüzde /bin /usr/bine sembolik bir bağlantıdır. Bu iki dizin aslında aynı dizindir.

/dev

UNIX’te herşeyin dosya olduğunu söylemiştik. Devices yani /dev dizininde cihazlar bulunur. Örneğin monitöre bir şey yazdırdığımız sırada bunun yazıldığı dosya /dev/console dosyasıdır. Kullandığımız klavye bile /dev/kbd dosyasına yazılıyor.

/etc ve /usr/etc

Bu dizinde çoğunlukla konfigürasyon dosyaları bulunur. Sistem adminleri kullanıcıların ihtiyaçlarını karşılamak için belirli konfigürasyonları burada yapar. Örneğin en popüler /etc dosyası hepimizin bildiği /etc/passwd dosyasıdır. Bu dosya içerisinde kullanıcılara ait bilgiler bulunur. Kullanıcıların parolası bu dosya içerisinde bulunmaz. Kullanıcı parolalarının hashli versiyonu /etc/shadow dosyası içerisinde tutulur.

/home

Bu dizin kullanıcının kalesidir diyebiliriz. Genellikle kullanıcıya ait masaüstü, indirilenler, resimler gibi alanlar burada yer alır. Kullanıcının kişisel kullanım alanıdır.

/lib ve /usr/lib

Çekirdek modülleri ve paylaşılan kütüphane dosyaları bu klasörde bulunur. Kütüphane içerisindeki dosyaları başlatmak için /bin içerisindeki dosyaları başlatmak gereklidir. Bu kütüphane dosyalarını Windows içerisindeki DLL dosyaları gibi gibi düşünebiliriz.

/tmp

Geçici dosyalar içindir. Birçok program burayı geçici depolama alanı olarak kullanır ve genellikle KB’lar mertebesinde kalır. Tüm kullanıcıların okuyabildiği ve yazabildiği bir alandır ve /var/tmp ve /tmp klasöründeki alanlar genellikle derleyiciler ve UNIX geçici dosyaları için oluşturulur.Ne yaptığınızdan emin değilseniz buradaki dosyalara her ne kadar da geçici olsa müdahale etmeyiniz.

/var

Log dosyaları, e-posta ve yazıcı kuyrukları gibi değişken sistem bilgilerini barındırır. Sisteminize dair tutulan log’ları buradan görebilir; güvenlik durumunu buradan kontrol edebilirsiniz. Bu dizin yapısının arkasındaki felsefe boyutları değişen ve düzgün bir şekilde tutulmazsa büyüme eğilimi gösteren dizinler içermesidir.

/media

Kaldırılabilir aygıtların (USB bellek, SD kart, CD vb.) ve sistem başlangıcında bağlanmayan sabit disk bölümlerinin bağlanma noktasıdır. Söz konusu depolama ortamları sisteme bağlanmamış iken dizin içeriği boş görünür.

/mnt

İşletim sisteminin kurulu olduğu disk bölümü hariç olmak üzere sistem başlangıcında bağlanan sabit disk bölümleri ve donanım aygıtlarının bağlanma noktasıdır. Bağlama(mount) işlemi, bir disk bölümünün sisteme bağlanarak kullanıma hazır hâle gelmesi demektir. Nereye bağladığınız sizin tercihinizdir, değiştirmeniz mümkündür. Yani bir diski, /media veya /mnt klasörüne ya da bir başka yere bağlamanız fark etmeyecektir. /media ve /mnt sadece genel kabul görmüş bağlantı noktalarıdır.

/opt

İşletim sisteminden bağımsız, sistem için zorunlu olmayan 3. parti kullanıcı programları bu dizinde bulunur. Örneğin; Google Earth programını indirip kurmak istediğinizde, varsayılan olarak kurulacağı nokta, /opt/google-earth adresidir.

Elbette üçüncü parti bir programı kurarken bu kurulum konumunu değiştirebilir, size uygun gelen bir başka konuma yükleyebilirsiniz. Ancak daha önce de bahsettiğimiz gibi bazı şeyler genel kabule dayanır.

/proc

Süreçler, sistem belleği, bağlı aygıtlar, donanım yapılandırmalarıyla ilgili bilgileri içeren özel bir “sanal” dosya sistemidir. Bildiğimiz anlamda fiziksel dosyalar bulundurmaz; sistem durumuna dair bilgi içeren sanal dosyaları vardır. Bir bilgi alma merkezi olarak görülebilir, birçok uygulama buradaki bilgilerden yararlanmaktadır. Örneğin cat /proc/swaps yazarak sisteminizdeki takas dosyalarına dair bilgi alabilir ya da cat /proc/cpuinfo komutuyla işlemcinizin özelliklerini görebilirsiniz.

/proc klasörü içerisindeki dosyalar, sadece sistem durumunu görüntülemek için kullanılmaz, gerektiğinde sistemde ayarlama yapmak için de kullanılabilir.

/root

Linux/Unix sistemlerde, işletim sistemine her türlü müdahalede bulunabilme yetkisine sahip, “root” adıyla tanımlanmış, süper yetkili özel bir kullanıcı hesabı vardır. /root dizini, bu özel kullanıcı hesabının ev dizinidir. Daha iyi anlamak adına örneğin; “burak” isimli kullanıcı hesabının ev dizini /home/dogukan şeklindeyken “root” kullanıcısının ev dizini /root dizini şeklindedir. Root kullanıcısına daha önce de belirttiğimiz şekilde “kök kullanıcı” da denilir.

/run

Son önyüklemeden bu yana çalışan sistemle ilgili bilgileri tutar. Tutulan bilgilere örnek vermek gerekirse şu anda oturum açmış kullanıcılar, sisteme bağlanan aygıtlar, ağ ile bağlantı(network) değişimleri ve bunun gibi bilgileri tutar.

/sbin

Linux’ta normal kullanıcının kullanabileceği komutlarla, kök kullanıcının (root) kullanabileceği komutlar ayrılmıştır. root tarafından kullanılacak bakım ve yönetim için kullanılan önemli programlar, /sbin altında tutulur. Daha az öneme sahip yönetim komutlarıysa, /usr/sbin klasöründedir. Eğer yerelde, yani kullandığınız makineye özgü kök kullanıcı (root) komutları bulunuyorsa, bunları da /usr/local/sbin altında bulabilirsiniz.

Referanslar