Linux'ta güvenliğin temeli izinlerdir. "Bu dosyayı kim okuyabilir, kim çalıştırabilir, kim değiştirebilir?" sorusunun cevabı; bir sunucunun ne kadar sağlam ya da ne kadar savunmasız olduğunu doğrudan belirler. Bu rehberde Linux izin modelini sıfırdan ele alıyor; chmod, chown, umask, özel izin bitleri (SUID/SGID/sticky) ve klasik modelin yetmediği yerde devreye giren ACL'yi uygulamalı olarak anlatıyoruz.
Konuda Anlatılacaklar
- Linux izin modeli: kullanıcı/grup/diğer ve rwx
- chmod: sembolik ve sayısal (oktal) kullanım
- chown ve chgrp: sahiplik yönetimi
- umask: varsayılan izinlerin belirlenmesi
- Özel bitler: SUID, SGID, sticky bit
- ACL: getfacl / setfacl ile ince ayar
- Sonuç, kaynakça ve yasal uyarı
1. İzin Modeli: Üç Sınıf, Üç Yetki
Her dosya ve dizinin bir sahibi (user), bir grubu (group) ve bir de diğerleri (others) sınıfı vardır. Her sınıf için üç yetki tanımlanır: okuma ®, yazma (w) ve çalıştırma (x). İzinleri görmek için:
ls -l dosya.txt-rw-r--r-- 1 ahmet ekip 1024 Oct 17 14:00 dosya.txtDizinlerde x yetkisinin anlamı özeldir: bir dizine "girip" içindeki yollara erişebilmek için x gerekir; r ise yalnızca listeleme yetkisidir.
2. chmod: İzin Değiştirme
chmod'u iki biçimde kullanırsınız: sembolik ve sayısal (oktal).
Sembolik kullanım (u=user, g=group, o=other, a=all; +ekle, -kaldır, =eşitle):
chmod u+x script.sh # sahibe çalıştırma ekle
chmod go-w dosya.txt # grup ve diğerlerinden yazmayı kaldır
chmod a=r dosya.txt # herkese yalnızca okumaSayısal (oktal) kullanım: r=4, w=2, x=1 değerlerinin toplamı her sınıf için bir rakam verir:
chmod 644 dosya.txt # rw-r--r--
chmod 755 script.sh # rwxr-xr-x
chmod 600 gizli.key # rw------- (yalnızca sahibi)chmod -R 750 /opt/uygulama3. chown ve chgrp: Sahiplik
Bir dosyanın sahibini ve/veya grubunu değiştirmek için chown kullanılır (genelde root yetkisi gerekir):
sudo chown ahmet dosya.txt # sahibi değiştir
sudo chown ahmet:ekip dosya.txt # sahip ve grup
sudo chgrp ekip dosya.txt # yalnızca grup
sudo chown -R ahmet:ekip /srv/proje # özyinelemeli4. umask: Varsayılan İzinler
Yeni oluşturulan dosya ve dizinler, umask değerine göre izin alır. umask, verilmeyecek bitleri maskeler. Tipik varsayılan 022'dir:
umask # mevcut değeri göster
umask 027 # yeni dosyalara daha sıkı varsayılan5. Özel Bitler: SUID, SGID, Sticky
Klasik rwx'in üstünde üç özel bit vardır ve güvenlik açısından kritiktir.
- SUID (4): Çalıştırılabilir dosya, sahibinin yetkisiyle çalışır. Örnek: passwd komutu root SUID'lidir, böylece sıradan kullanıcı parolasını değiştirebilir.
- SGID (2): Dosyada grup yetkisiyle çalıştırma; dizinde ise içinde oluşturulan dosyaların dizin grubunu devralmasını sağlar (ortak çalışma dizinleri için idealdir).
- Sticky bit (1): Dizinde, bir kullanıcının yalnızca kendi dosyasını silebilmesini sağlar. /tmp dizini buna klasik örnektir.
chmod u+s program # SUID
chmod g+s paylasim/ # SGID dizin
chmod +t /ortak/alan # sticky bitfind / -perm -4000 -type f 2>/dev/null6. ACL: getfacl ve setfacl
Klasik model yalnızca tek sahip, tek grup ve diğerlerini tanımlar. "Bu dosyaya Ayşe de yazsın ama başka kimse değil" gibi ince ihtiyaçlarda ACL (Access Control List) devreye girer.
Mevcut ACL'yi görme:
getfacl dosya.txtsetfacl -m u:ayse:rw dosya.txtsetfacl -m g:ekip:rx klasor/
setfacl -d -m g:ekip:rx klasor/setfacl -x u:ayse dosya.txt # tek kayıt
setfacl -b dosya.txt # tüm ACL7. İleri Seviye ve İyi Uygulamalar
- En az ayrıcalık: Her zaman gereken en dar izni verin; 777'den kaçının, bu neredeyse her zaman hatalı bir çözümdür.
- Anahtar ve sır dosyaları: SSH özel anahtarları 600 olmalı, aksi halde istemci bağlanmayı reddeder.
- Düzenli denetim: Dünyaya yazılabilir dosyaları bulun: Kod:
find / -perm -0002 -type f 2>/dev/null - Değişmezlik: Kritik dosyaları kazara değişikliğe karşı chattr +i ile değişmez yapabilirsiniz (ext4): Kod:
sudo chattr +i /etc/onemli.conf
Sonuç
Linux izin yönetimi, karmaşık görünse de birkaç sağlam kavrama dayanır: üç sınıf, üç yetki, özel bitler ve gerektiğinde ACL. chmod/chown/umask üçlüsünü ve SUID/SGID/sticky mantığını iyi oturtmak, hem sistemlerinizi sertleştirmenizi hem de bir denetimde zayıf noktaları hızla görmenizi sağlar. "En az ayrıcalık" ilkesini her kararın merkezine koyun.
Kaynakça
- GNU Coreutils El Kitabı (chmod, chown) - https://www.gnu.org/software/coreutils/manual/
- chmod(1), chown(1), umask(1p) man sayfaları
- setfacl(1) / getfacl(1) man sayfaları - https://man7.org/linux/man-pages/man1/setfacl.1.html
- Arch Wiki: File permissions and attributes - https://wiki.archlinux.org/title/File_pe...attributes
- Debian Yönetici El Kitabı - https://www.debian.org/doc/
Yasal Uyarı
Alıntı:İzin ve sahiplik değişiklikleri yalnızca kendi sistemlerinizde veya yönetim yetkiniz olan sistemlerde yapılmalıdır. Başkasının sistemine izinsiz müdahale Türk Ceza Kanunu 243-245. maddeleri kapsamında suçtur.
Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).