Linux Permission Rehberi: Dosya ve Dizin Yetkileri
Linux Permission kavramı, işletim sisteminde dosya ve dizinlerin güvenliğini sağlamak için kullanılan en temel mekanizmalardan biridir. Bir sunucu yöneticisi, sistem yöneticisi ya da geliştirici olarak, dosya izinlerini doğru şekilde yönetmek kritik bir beceridir. Çünkü yanlış yapılandırılmış bir izin, ya yetkisiz erişime ya da beklenmedik bir erişim kısıtlamasına yol açabilir. Bu rehberde, Linux Permission sistemini derinlemesine ele alacak, kullanım senaryolarını inceleyecek ve pratik ipuçları sunacağız.
Linux Permission Nedir?
Linux Permission, her dosya ve dizin için tanımlanan erişim yetkilerini ifade eder. Bu yetkiler, hangi kullanıcıların dosyaları okuyabileceğini, değiştirebileceğini veya çalıştırabileceğini belirler. Üç ana kategori vardır:
Okuma (Read – r): Dosyanın içeriğini görüntüleme yetkisi.
Yazma (Write – w): Dosyayı değiştirme veya üzerine yazma izni.
Çalıştırma (Execute – x): Dosyayı çalıştırma veya dizine erişme izni.
Her dosya ve dizin, bu üç yetkinin kombinasyonu ile yönetilir.
Kullanıcı Grupları
Linux Permission sistemi yalnızca yetkilerin ne olduğunu değil, kimin kullanabileceğini de belirler. İzinler üç ana kullanıcı grubu için atanır:
Owner (Sahip): Dosyayı oluşturan veya sahipliği devralan kullanıcı.
Group (Grup): Aynı kullanıcı grubundaki diğer kişiler.
Others (Diğerleri): Sistemdeki geri kalan tüm kullanıcılar.
Bu sayede, aynı dosya üzerinde farklı seviyelerde kontrol sağlanabilir.
İzinlerin Temsili
Linux Permission bilgileri genellikle terminalde ls -l
komutuyla görüntülenir. Örneğin:
Bu ifade şu şekilde okunur:
– : Dosya türü (– normal dosya, d = dizin).
rwx : Sahip için izinler (okuma, yazma, çalıştırma).
r-x : Grup için izinler (okuma, çalıştırma).
r– : Diğer kullanıcılar için izinler (sadece okuma).
Sayısal Gösterim (Octal Notation)
İzinler yalnızca sembollerle değil, sayılarla da temsil edilebilir. Bu sistem, izin yönetimini daha pratik hale getirir.
4 = Read (r)
2 = Write (w)
1 = Execute (x)
Bunların toplamı izin kombinasyonunu verir:
7 = rwx
6 = rw-
5 = r-x
4 = r–
Örneğin:
Bu komut, dosyanın sahibine tüm izinleri, gruba ve diğerlerine ise okuma ve çalıştırma izni verir.
chmod Komutu
Linux Permission ayarlamanın en bilinen yolu chmod
komutudur.
Örnekler:
chmod 644 file.txt
→ Sahip: okuma-yazma, Grup ve diğerleri: sadece okumachmod +x script.sh
→ Çalıştırma izni eklemechmod -w notes.txt
→ Yazma iznini kaldırma
chown ve chgrp
İzin yönetimi yalnızca chmod
ile sınırlı değildir. Sahiplik ve grup atamaları da önemlidir.
chown: Dosya sahibini değiştirir.
chgrp: Dosyanın grup sahipliğini değiştirir.
Özel İzinler
Linux Permission daha gelişmiş ihtiyaçlar için özel izinler de içerir:
SetUID (s): Program sahibinin yetkileriyle çalışmasını sağlar.
SetGID (s): Dosyanın grup yetkileriyle çalışmasını sağlar.
Sticky Bit (t): Dizinlerde, sadece dosya sahibinin silmesine izin verir.
Örnek: /tmp
dizini sticky bit kullanır.
Pratik Senaryolar
Web Sunucusu İçin Güvenlik:
Bir web sunucusu çalıştırıyorsanız,www-data
gibi kullanıcıların yalnızca gerekli dizinlere erişmesini sağlamalısınız.Paylaşımlı Sunucu:
Aynı sunucuda birden fazla geliştirici çalışıyorsa, grup izinleriyle düzenlemeler yapılmalıdır.Script Çalıştırma:
Bir scripti çalıştırılabilir hale getirmek içinchmod +x
komutu gerekir.
Linux Permission Yönetiminde İyi Uygulamalar
Minimum Yetki İlkesi: Kullanıcıya sadece ihtiyacı olan izinleri verin.
Grup Kullanımı: İzinleri kullanıcı bazlı değil, grup bazlı yönetin.
Sistem Denetimleri: Düzenli olarak izinleri kontrol edin (
find / -perm
).Özel İzinleri Gereksiz Kullanmayın: SetUID gibi izinler güvenlik riski doğurabilir.
Sonuç
Linux Permission sistemi, Linux işletim sisteminin en güçlü güvenlik özelliklerinden biridir. Dosya ve dizinler üzerinde doğru izin yapılandırmaları yapmak, yalnızca güvenliği değil aynı zamanda sistemin verimliliğini de artırır. Sahiplik, gruplar ve özel izinler gibi detaylara hakim olarak, sisteminizi daha güvenli ve yönetilebilir hale getirebilirsiniz.