Pardus'ta Paylaşımlı Dizin Güvenliği: Sticky Bit Rehberi
Pardus ve genel olarak Linux sistemlerinde dosya izinleri, güvenliğin temel taşını oluşturur. Standart read (okuma), write (yazma) ve execute (çalıştırma) izinlerinin ötesinde, sistem yönetimine esneklik katan "Özel İzinler" bulunur. Bunlardan en yaygın olanı Sticky Bit (Yapışkan Bit) özelliğidir.
1. Sticky Bit Nedir?
Sticky Bit, bir dizin üzerindeki dosyaların yalnızca sahibi (owner), dizinin sahibi veya root kullanıcısı tarafından silinmesine veya adının değiştirilmesine izin veren özel bir erişim hakkı bayrağıdır.
Normal şartlarda, bir dizine yazma (w) izni olan her kullanıcı, o dizin içindeki her dosyayı (sahibi olmasa bile) silebilir. Sticky Bit, ortak çalışma alanlarında kullanıcıların birbirlerinin verilerine zarar vermesini engellemek için kullanılır.
2. Neden Kullanılır?
En klasik örnek Linux sistemlerindeki /tmp dizinidir.
/tmpdizinine her kullanıcı dosya yazabilir.Ancak Sticky Bit sayesinde, Kullanıcı A'nın oluşturduğu geçici dosyayı Kullanıcı B silemez.
Bu, sistemin kararlılığını ve kullanıcı verilerinin güvenliğini sağlar.
3. Sticky Bit Nasıl Tespit Edilir?
Bir dizinde Sticky Bit'in aktif olup olmadığını anlamak için ls -ld komutunu kullanırız. İzinler kısmındaki en son karakter (diğerleri için çalıştırma izni alanı) kontrol edilir.
ls -ld /tmp
Çıktı Örneği:
drwxrwxrwt 15 root root 4096 Jan 29 17:40 /tmp
tharfi: Sticky Bit aktif ve "diğerleri" (others) için çalıştırma izni de var demektir.Tharfi: Sticky Bit aktif ancak "diğerleri" için çalıştırma izni yok demektir.
4. Sticky Bit Nasıl Atanır? (Uygulama)
Pardus terminalinde Sticky Bit atamak için chmod komutu iki farklı yöntemle kullanılabilir:
A. Sembolik Yöntem
Mevcut izinleri bozmadan sadece Sticky Bit eklemek için +t parametresi kullanılır.
# Bir dizine sticky bit eklemek için:
sudo chmod +t /dizin_adi
# Kaldırmak için:
sudo chmod -t /dizin_adi
B. Sayısal (Oktal) Yöntem
Linux'ta izinler 3 haneli rakamlarla (örneğin 755) ifade edilir. Özel izinler için bu rakamın başına 4. bir hane eklenir:
SUID: 4
SGID: 2
Sticky Bit: 1
Örneğin, bir dizine 777 (herkese tam yetki) verip Sticky Bit eklemek isterseniz kod 1777 olur.
# Tam yetkili ve sticky bit içeren bir dizin oluşturma:
sudo chmod 1777 /ortak_klasor
5. Uygulama Senaryosu: Ortak Proje Klasörü
Pardus yüklü bir sunucuda "muhasebe" grubu üyelerinin dosya paylaşabileceği ama birbirlerinin dosyalarını silemeyeceği bir klasör oluşturalım:
Dizini Oluşturun:
sudo mkdir /muhasebe_ortakGrup Yazma İzni Verin:
sudo chmod 775 /muhasebe_ortakSticky Bit Uygulayın:
sudo chmod +t /muhasebe_ortak
Artık bu klasörde herkes dosya oluşturabilir, ancak ahmet kullanıcısının oluşturduğu bir dosyayı mehmet kullanıcısı (yazma izni olsa dahi) silemeyecektir.
Özet Tablo
| Özellik | Açıklama |
| Sayısal Değeri | 1 (Örn: 1755) |
| Sembolik Harfi | t veya T |
| Kapsamı | Genellikle Dizinler |
| Temel Görevi | Dosya silme yetkisini sadece sahibine kısıtlamak |
Pardus sisteminizde güvenliği artırmak için çok kullanıcılı dizinlerde Sticky Bit yapılandırmasını mutlaka gözden geçirmelisiniz.
Pardus üzerinde çok kullanıcılı bir ortamda veri güvenliğini sağlamak için gerçekçi bir senaryo üzerinden ilerleyelim.
Senaryomuzda bir "Proje" klasörü oluşturacağız. Bu klasörde herkes dosya okuyup yazabilecek, ancak kimse bir başkasının çalışmasını yanlışlıkla veya kasten silemeyecek.
Pardus Güvenli Ortak Klasör Senaryosu
Bu senaryoyu terminal üzerinden adım adım uygulayalım:
1. Klasörü Oluşturma ve Yetkilendirme
Öncelikle kök dizinde tüm kullanıcıların erişebileceği bir alan oluşturalım.
# Klasörü oluştur
sudo mkdir /ortak_proje
# Klasör izinlerini herkesin yazabileceği şekilde ayarla (777)
sudo chmod 777 /ortak_proje
2. Sticky Bit Olmadan Test (Riskli Durum)
Eğer Sticky Bit olmasaydı:
alikullanıcısı klasörenot.txtekler.aysekullanıcısı, bu dosya kendisine ait olmasa bilerm /ortak_proje/not.txtkomutuyla dosyayı silebilir. Çünkü klasörün yazma izni herkese açıktır.
3. Sticky Bit Uygulama (Güvenli Durum)
Şimdi bu "silme" karmaşasını önlemek için korumayı devreye alalım:
# Sticky Bit özelliğini ekle
sudo chmod +t /ortak_proje
4. Sonucun Doğrulanması
İzinleri kontrol ettiğimizde dizin yapısının şu şekilde değiştiğini göreceksiniz:
ls -ld /ortak_proje
# Çıktı şuna benzeyecektir:
# drwxrwxrwt 2 root root 4096 Jan 29 18:00 /ortak_proje
Adım Adım Güvenlik Analizi
Aşağıdaki tablo, Sticky Bit uygulandıktan sonra Pardus sistemindeki davranış değişikliğini özetler:
| İşlem | Kullanıcı | Durum | Neden? |
| Dosya Oluşturma | Herkes | ✅ Başarılı | Klasör izni 777 (Herkes yazabilir). |
| Kendi Dosyasını Silme | Dosya Sahibi | ✅ Başarılı | Dosya sahibinin tam yetkisi vardır. |
| Başkasının Dosyasını Silme | Diğerleri | ❌ Reddedildi | Sticky Bit aktif; sadece sahip silebilir. |
| Başkasının Dosyasını Okuma | Herkes | ✅ Başarılı | Okuma (r) izinleri hala aktiftir. |
Dikkat Edilmesi Gereken Bir İpucu
Eğer bir dizinde Sticky Bit olduğunu görüyorsanız ancak harf küçük t yerine büyük T ise, bu durum "diğerleri" (others) grubunun o dizinde çalıştırma (execute) iznine sahip olmadığını gösterir. Tam işlevsellik için genellikle küçük t (çalıştırma izniyle birlikte) tercih edilir.
Bu senaryoyu kendi Pardus sisteminizde denemek için iki farklı kullanıcı hesabı açıp terminal üzerinden "silme" komutunu test edebilirsiniz.
Pardus ve diğer Linux tabanlı sistemlerde, Sticky Bit (Kısıtlayıcı Silme) ve SGID (Set Group ID) özelliklerini bir arada kullanmak, kurumsal bir dosya hiyerarşisi oluşturmanın en profesyonel yoludur.
Bu yapılandırma genellikle bir departmanın (örneğin "Yazılım" veya "Muhasebe") ortak bir klasörde çalışması, ancak dosyaların hem belirli bir gruba ait kalması hem de korunması istendiğinde kullanılır.
SGID + Sticky Bit Kombinasyonu
Normalde bir kullanıcı dosya oluşturduğunda, o dosyanın sahibi ve grubu, o kullanıcı kimse o olur. Ancak SGID bunu değiştirir.
1. SGID Nedir?
Bir dizine SGID atandığında, o dizin içinde oluşturulan her dosya/alt dizin, oluşturan kullanıcının grubunu değil, ana dizinin grubunu otomatik olarak devralır.
2. İkisini Birleştirince Ne Olur?
SGID sayesinde: Herkesin oluşturduğu dosya otomatik olarak "ortak_grup" grubuna ait olur (Böylece ekip üyeleri birbirinin dosyasını okuyabilir).
Sticky Bit sayesinde: Kimse bir başkasının dosyasını silemez.
Adım Adım Teknik Yapılandırma
Pardus terminalinde şu komutları takip ederek "Geliştirici" ekibi için mükemmel bir çalışma alanı oluşturalım:
A. Hazırlık: Grup ve Kullanıcılar
# Geliştiriciler grubunu oluşturalım
sudo groupadd gelistiriciler
# Kullanıcıları bu gruba ekleyelim
sudo usermod -aG gelistiriciler ali
sudo usermod -aG gelistiriciler ayse
B. Dizin Oluşturma ve Sahiplik
sudo mkdir /proje_deposu
# Grubunu gelistiriciler yapalım
sudo chown :gelistiriciler /proje_deposu
C. Özel İzinlerin Atanması (Sihirli Dokunuş)
Burada hem SGID (2) hem de Sticky Bit (1) kullanacağız. Sayısal toplamda başa 3 (2+1) getireceğiz.
# 3: SGID + Sticky Bit, 7: Sahibi, 7: Grup, 0: Diğerleri (tam koruma)
sudo chmod 3770 /proje_deposu
Sonuç Analizi
Bu komuttan sonra ls -ld /proje_deposu dediğinizde izinleri şu şekilde göreceksiniz:
drwxrws--t
| Karakter | Anlamı | Etkisi |
s (Group alanında) | SGID Aktif | Ayşe dosya oluşturduğunda, dosyanın grubu otomatik gelistiriciler olur. Ali bu dosyayı hemen okuyabilir. |
t (Others alanında) | Sticky Bit Aktif | Ali, Ayşe'nin dosyasını okuyabilir ama silemez. |
Neden Bu Yapılandırmayı Kullanmalısınız?
Bu yöntem, Pardus sistem yöneticileri için "kendi kendini yöneten" bir ekosistem yaratır. Sürekli dosya sahipliği değiştirmekle (chown) uğraşmazsınız. Sistem, grup hiyerarşisini ve silme güvenliğini otomatik olarak sağlar.
Yorumlar