
Linux izinleri sadece dosyalara kimin erişebileceğini belirler, ancak sistem otoritesini (yetkisini) tam olarak açıklamazlar. Çoğu kullanıcı chmod komutunu öğrenir ve orada kalır; bu da dosyalar doğru görünmesine rağmen sistemin yeniden başlatılması veya servislerin yönetilmesi gibi işlemlerin neden başarısız olduğunu anlamayı zorlaştırır.
- 1. Klasik Unix İzin Modeli
- 2. Linux Grupları Neden Önemlidir?
- 3. Modern Linux Ayrıcalıklı İşlemleri Nasıl Kontrol Eder?
- 4. İzinler (Permissions) vs. Ayrıcalıklar (Privileges): Temel Fark
- 5. sudo ve “wheel” Grubunun Rolü
- 6. Yüksek Riskli Gruplar
- 7. Pratik Senaryo: İzin mi, Ayrıcalık Sorunu mu?
- Özet ve Temel Çıkarımlar
Bu rehber, Linux izinleri ile ayrıcalıkları arasındaki farkı, grupların bu yapıdaki yerini ve modern Linux sistemlerinin yetkilendirmeyi neden farklı ele aldığını derinlemesine inceler.
1. Klasik Unix İzin Modeli
Linux’ta her dosya üç temel sahiplik türüne sahiptir:
- Sahip (Owner): Dosyayı oluşturan veya atanan belirli bir kullanıcı.
- Grup (Group): Bir kullanıcı koleksiyonu.
- Diğerleri (Others): Sistemdeki diğer herkes.
Her kimlik için üç tür erişim izni tanımlanabilir:
- Okuma (r – Read): Dosya içeriğini görüntüleme.
- Yazma (w – Write): Dosya içeriğini değiştirme.
- Çalıştırma (x – Execute): Dosyayı bir program olarak çalıştırma.
Bu izinleri şu komutla görebilirsiniz:
Bash
ls -l /usr/bin/sudo
Çıktı şuna benzer bir şey olacaktır: -rwsr-xr-x 1 root root 281624 Haz 24 2025 /usr/bin/sudo
Bu çıktının analizi:
-rwsr-xr-x: İzin bitleri (buradaki ‘s’ harfine daha sonra değineceğiz).root root: Sahibi root, grubu root.- Sahip: Okuyabilir, yazabilir ve çalıştırabilir.
- Grup: Okuyabilir ve çalıştırabilir.
- Diğerleri: Okuyabilir ve çalıştırabilir.
Bu model, bir dosyayı kimin açabileceğini, değiştirebileceğini veya çalıştırabileceğini kontrol eder. Basit ve temeldir, ancak verileri ve programları korumak için hala hayati öneme sahiptir.
2. Linux Grupları Neden Önemlidir?
Gruplar, her kullanıcıya tek tek izin vermek zorunda kalmadan erişimi kontrollü bir şekilde paylaşmayı sağlar. Linux, donanım ve kaynaklara erişimi yönetmek için grupları aktif olarak kullanır:
- audio: Ses aygıtlarına erişim.
- video: GPU ve grafik kartlarına erişim.
- plugdev: USB ve çıkarılabilir medyaya erişim.
- libvirt / kvm: Sanal makine yönetimi.
- disk: Doğrudan disk erişimi (çok riskli).
Pratik Örnek: Video aygıtınızı kontrol edin:
Bash
ls -l /dev/dri/card1
Çıktı muhtemelen şöyledir: crw-rw----+ 1 root video 226, 1 Ara 30 18:00 /dev/dri/card1
Aygıt root kullanıcısına ve video grubuna aittir. video grubundaki herkes, root olmadan da GPU’yu kullanabilir.
Bir kullanıcıyı gruba eklemek için:
Bash
sudo usermod -a -G video kullaniciadi
Bu kullanıcı artık GPU’yu kullanabilir. Gruptan çıkarıldığında erişim anında kesilir (kullanıcı oturumu kapatıp açtıktan sonra). Gruplar, kullanıcı bazlı kurallardan daha ölçeklenebilirdir ve Linux güvenliğinin merkezinde yer alır.
3. Modern Linux Ayrıcalıklı İşlemleri Nasıl Kontrol Eder?
Geleneksel Unix sistemleri, sistem otoritesi için dosya sahipliğine ve özel gruplara güvenirdi. Ancak Modern Linux, sistem kontrolü için öncelikle dosya sahipliğine güvenmez. Bunun yerine, ayrıcalıklı işlemler politika tabanlı yetkilendirme katmanlarından geçer.
shutdown veya systemctl restart komutlarını çalıştırdığınızda, Linux önce dosya izinlerini kontrol etmez. Bunun yerine bir politika tarafından izin verilip verilmediğinizi kontrol eder. Bu genellikle şu araçlarla sağlanır:
- systemd: Başlangıç sistemi ve servis yöneticisi.
- polkit (PolicyKit): Sistem çapındaki politikalar için yetkilendirme çerçevesi.
- D-Bus: Sistem isteklerini ileten mesajlaşma veriyolu.
Siz systemctl reboot yazdığınızda aslında ne olur?
- Komutunuz D-Bus üzerinden systemd’ye gider.
- Polkit yetkilendirme isteğini yakalar.
- Polkit,
/usr/share/polkit-1/actions/ve/etc/polkit-1/rules.d/içindeki kuralları kontrol eder. - Şu kriterlere göre karar verir:
- Fiziksel konsolda mısınız? (Yerel vs Uzak bağlantı)
- Kullanıcı ID ve grup üyelikleriniz neler?
- Oturumunuz aktif mi?
Örneğin, yerel bir kullanıcı sudo kullanmadan bilgisayarı yeniden başlatabilirken, SSH ile bağlanan bir kullanıcının genellikle açıkça yetkilendirilmesi gerekir.
4. İzinler (Permissions) vs. Ayrıcalıklar (Privileges): Temel Fark
Bu ikisi sıkça karıştırılır ancak tamamen farklıdır:
| Özellik | İzinler (Permissions) | Ayrıcalıklar (Privileges) |
| Neyi Kontrol Eder? | Dosya erişimini (Okuma/Yazma) | Sistem otoritesini (Servis yönetimi, Reboot) |
| Karar Mekanizması | Dosya sahipliği ve mod bitleri | Politika kuralları ve yetkilendirme |
| Değiştirme Aracı | chmod, chown, chgrp | sudo yapılandırması, polkit kuralları |
| Örnek Soru | /etc/hosts dosyasını düzenleyebilir miyim? | Ağ servisini yeniden başlatabilir miyim? |
/usr/sbin/reboot dosyası üzerinde çalıştırma (execute) izniniz olabilir, ancak bu, gerekli ayrıcalıklara sahip olmadan sistemi yeniden başlatabileceğiniz anlamına gelmez.
5. sudo ve “wheel” Grubunun Rolü
Red Hat tabanlı sistemlerde wheel, Debian tabanlı sistemlerde sudo grubu genellikle kafa karıştırır. Bu grupların “doğuştan” gelen bir gücü yoktur; güçlü olmalarının sebebi sistem politikasının (policy) onlara güvenmesidir.
Şunu çalıştırdığınızda:
Bash
sudo systemctl restart apache2
Linux, /etc/sudoers dosyasını kontrol eder. Tipik bir yapılandırma şöyledir: %sudo ALL=(ALL:ALL) ALL
Bu satırın anlamı şudur: “sudo grubunun üyeleri, herhangi bir ana bilgisayarda, herhangi bir kullanıcı olarak, herhangi bir komutu çalıştırabilir.”
Grubun kendisi sadece bir etikettir; asıl gücü veren sudoers yapılandırmasıdır. Neler yapabileceğinizi şu komutla görebilirsiniz:
Bash
sudo -l
6. Yüksek Riskli Gruplar
Bazı Linux grupları o kadar derin erişim sağlar ki, üyelik fiilen root yetkisi demektir. Bunlara dikkat edin:
- docker: Üyeler, ana makinenin dosya sistemini bağlayıp (mount) root yetkisine kaçabilirler.
- disk: Ham disk aygıtlarına yazabilirler, dosya izinlerini atlayarak her veriyi okuyup silebilirler.
- libvirt / kvm: Ana makine kaynaklarına erişen sanal makineler oluşturabilirler.
- adm: Çoğu log dosyasını okuyabilir, hassas bilgileri görebilirler.
Bir kullanıcıyı bu gruplara eklemek sadece bir kolaylık değil, ciddi bir güvenlik kararıdır.
7. Pratik Senaryo: İzin mi, Ayrıcalık Sorunu mu?
Durum: Apache sunucusunu yeniden başlatmak istiyorsunuz.
Bash
$ systemctl restart apache2
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to restart 'apache2.service'.
Teşhis Adımları:
- Dosya İzni Kontrolü:
ls -l /usr/bin/systemctlkomutuyla dosyayı herkesin çalıştırabildiğini (x biti) görürsünüz. Sorun bu değil. - Grup Kontrolü:
groupskomutunu çalıştırın. Eğersudogrubunda değilseniz, yönetici yetkiniz yoktur. - Sudo Yetkisi:
sudo -lkomutu “Sorry, user may not run sudo” diyorsa, ayrıcalığınız yoktur.
Çözüm: Sorun dosya izni değil, ayrıcalık (privilege) eksikliğidir. Kullanıcıyı sudo grubuna eklemeniz veya sudoers dosyasında özel bir izin tanımlamanız gerekir.
Özet ve Temel Çıkarımlar
- Dosya İzinleri (rwx): Dosyayı kimin okuyup yazacağını kontrol eder.
- Ayrıcalıklar (sudo, polkit): Kimin sistem çapında (reboot, servis yönetimi gibi) işlem yapabileceğini kontrol eder.
- Modern Linux: Sadece dosya sahipliğine değil, politika tabanlı yetkilendirmeye dayanır.
- Tehlikeli Gruplar:
dockerveyadiskgibi gruplara üye olmak, kullanıcıya dolaylı yoldan root yetkisi verebilir. - Sorun Giderirken: Kendinize sorun: “Bu bir dosya erişim sorunu mu, yoksa sistem yetkisi sorunu mu?”






