Linux işletim sistemi, dosyaları ve dizinleri düzenlerken her birine özgü izinler ve türler kullanır. Bu, kullanıcıların verilere erişimini düzenlemek ve güvenliği sağlamak için önemlidir. Bu makalede, Linux’ta dosya türleri ve izinlerinin nasıl çalıştığını ve bunları nasıl yönetebileceğinizi öğreneceksiniz.

Dosya Türleri:

  1. Normal Dosyalar (Regular Files): Genellikle metin dosyaları, betikler, resimler ve diğer veri türlerini içerirler. İçerikleri metin veya ikili olabilir.
  2. Dizinler (Directories): Diğer dosyaları ve dizinleri içeren özel dosyalardır. İçerikleri, içerdikleri dosya ve dizinlerin listesi ile ilişkilidir.
  3. Sembolik Bağlantılar (Symbolic Links): Başka dosya veya dizinlere olan referansları temsil ederler. Semantik olarak farklıdırlar ve bağlandıkları hedefi gösterirler.

İzinler ve chmod, chown, chgrp

  • chmod (Change Mode): Dosya veya dizinlerin izinlerini değiştirmek için kullanılır. İzinler üç grupta gelir: kullanıcı (owner), grup (group) ve diğer (others). chmod komutuyla bu izinler, okuma (read), yazma (write) ve çalıştırma (execute) olarak ayarlanabilir.
  • chown (Change Owner): Dosya veya dizinin sahibini değiştirmek için kullanılır. Bu komutla dosyanın sahibi ve grup sahibi değiştirilebilir. Chown komutu için solda ki kısım sahiplik, sağda ki taraf gruptur. Bu komutla isterseniz hem grup hem sahipliği değiştirebilirsiniz. Sadece bir tarafı değiştirmek için ‘:’ kısmın diğer tarafı boş bırakabilirsiniz. Sol kısım sahiplik : Sağ kısım grup temsil eder.
    chown sahip:grup dosya/dizin
  • chgrp (Change Group): Dosya veya dizinin grubunu değiştirmek için kullanılır. Dosya veya dizinin ait olduğu grup değiştirilebilir.
    chgrp grup-ismi dosya/dizin

Eğer bir dizinin ve aynı zamanda dizinin içinde ki dosyalarında bu değişiklikten etkilenmesini istiyorsanız ‘-R‘ parametresini eklemeniz gerekir.
chown -R sahip:grup dizin

Dosya İzinleri:

Linux dosya izinleri üç kategoriye ayrılır:

  1. Kullanıcı (Owner): Dosyanın veya dizinin sahibi. Genellikle dosyayı oluşturan kullanıcıdır.
  2. Grup (Group): Dosyanın veya dizinin ait olduğu grup. Birden fazla kullanıcı aynı grupta olabilir.
  3. Diğerleri (Others): Dosyanın veya dizinin sahibi veya gruptaki kullanıcılar dışındaki herkes.

Her bir kategori için izinler aşağıdaki şekillerde tanımlanır:

  • Okuma (Read – r): Dosyanın içeriğini okuma izni.
  • Yazma (Write – w): Dosyaya veri yazma veya değiştirme izni.
  • Çalıştırma (Execute – x): İçeriği çalıştırma izni (eğer bir betik dosyası ise).

chmod Octal Mode

Elde edilen bu binary değeri, octal’a çevirirsek karşımıza şöyle bir tablo çıkıyor, Dosya izinleri ve sayısal temsilleri hakkında daha fazla ayrıntı vermek gerekirse:

Octal değerStringİznin anlamı
0Hiçbir izin yok
1–xÇalıştırma
2-w-Yazma
3-wxYazma & çalıştırma
4r–Okuma
5r-xOkuma & çalıştırma
6rw-Okuma & yazma
7rwxOkuma & yazma & çalıştırma

Bunları ister sayısal ister harfler ile verebilirsiniz eğer çok karışık geliyorsa. Hesaplamak için kullandığım ‘chmodcommand‘ web sitesini önerebilirim.

Linux Dosya İzinleri: Setuid, Setgid ve Sticky Bit Nedir ve Nasıl Çalışır?

Linux işletim sistemi, dosya ve dizinlerin güvenliğini sağlamak için temel izinlerin ötesine geçen daha özel izinler sunar. Bu özel izinler, Setuid (set user ID), Setgid (set group ID) ve Sticky Bit olarak adlandırılır. Bu makalede, bu özel izinlerin ne olduğunu, nasıl çalıştığını ve neden önemli olduklarını öğreneceksiniz.

Setuid (Set User ID):

  • Ne İşe Yarar? Setuid, bir kullanıcının dosyayı çalıştırdığında o dosyanın sahibi olarak kabul edilmesini sağlar. Bu, kullanıcının normalde erişim hakkı olmayan sistem kaynaklarına erişmesine izin verebilir.
  • Nasıl Ayarlanır? Dosyanın sahibi, Setuid izni ayarlandığında dosyanın çalıştırıla bilirliğini açar Komut: chmod u+s dosya_adı,
    büyük harf “S” kullanarak: chmod u+S dosya_adı
  • Örnek Kullanım: Genellikle “passwd” komutu Setuid özelliğine sahiptir, böylece kullanıcılar kendi şifrelerini değiştirebilirler.

    Buraya bir açıklama getiriyim daha iyi anlayacağınızı düşünüyorum. passwd dosyasının sahipliği root kullanıcısına ait yani ben bu dosyayı kendi kullanıcı izinlerimle değiştiremem, kullanamam. Peki ben kendi kullanıcı parolamı nasıl değiştirebilirim. Burada işte bu dosya izini geliyor ben root yetkisi ile kendi parolamı değiştiriyorum.

Setgid (Set Group ID):

  • Ne İşe Yarar? Setgid, bir kullanıcının dosyayı çalıştırdığında dosyanın ait olduğu grubu kullanmasını sağlar. Bu, grup tabanlı işbirliği gerektiren dosyalarda kullanışlıdır.
  • Nasıl Ayarlanır? Dosyanın grubu, Setgid izni ayarlandığında dosyanın çalıştırılabilirliğini açar. Komut: chmod g+s dosya_adı
  • Örnek Kullanım: “passwd” komutunun /etc/shadow dosyasına erişimi, Setgid ile yapılandırılmış bir grup olan “shadow” tarafından denetlenir.

Sticky Bit:

  • Ne İşe Yarar? Sticky Bit, bir dizin içindeki dosyaların yalnızca dosyanın sahibi veya yönetici tarafından silinebileceği bir klasörde kullanılır. Genellikle /tmp dizininde kullanılır.
  • Nasıl Ayarlanır? Dizin içinde Sticky Bit’i ayarlamak için komut: chmod +t dizin_adı
  • Örnek Kullanım: /tmp dizini, kullanıcıların kendi dosyalarını oluşturmasına izin verirken, sadece kendi dosyalarını silebilmelerini sağlar.

Bu özel izinler, dosya ve dizin güvenliğini daha fazla kontrol etmek ve özellikle çok kullanıcılı sistemlerde yetkilendirme sorunlarını çözmek için kullanışlıdır. Bununla birlikte, bu izinleri dikkatli bir şekilde ayarlamak ve gereksiz kullanımlarından kaçınmak önemlidir, çünkü yanlış yapılandırılmış izinler güvenlik açıklarına yol açabilir.

İzin TürüSembolik İfadesiRakamsal Değeri
Setuidu+s4
Setgidg+s2
Sticky Bit+t1