İçeriğe geç

Linux’ta Dosya İzinleri için chmod Komutu Nasıl Kullanılır?

Kategori: Linux Sistemleri

Linux tabanlı bir VDS sunucuda dosya ve klasör izinleri, güvenlik zincirinin en kritik halkalarından biridir. Yanlış tanımlanmış bir izin, verilerinizi saldırganlara açabilir veya sistemin bütünlüğünü bozabilir. İşte bu noktada chmod komutu, kullanıcıların hangi dosyayı okuyabileceğini, yazabileceğini ya da çalıştırabileceğini belirleyen anahtar rolü üstlenir.

CHMOD Temel Mantığı

Kullanıcı Grupları

Bir dosya ya da klasör için izinler üç farklı kullanıcı grubu üzerinden belirlenir

Sahip (Owner) → Dosyanın sahibi olan kullanıcı.

Grup (Group) → Dosyanın bağlı olduğu kullanıcı grubu.

Diğerleri (Others) → Sistemdeki diğer tüm kullanıcılar.

  • r (okuma) = 4
  • w (yazma) = 2
  • x (çalıştırma) = 1

Her gruba okuma (r), yazma (w) ve çalıştırma (x) izinleri ayrı ayrı tanımlanır. Bu izinler sayısal kombinasyonlarla ifade edilir. Örneğin, 7 sayısı 4 (okuma) + 2 (yazma) + 1 (çalıştırma) toplamını temsil eder.

Chmod Kullanımı

Tüm İzinleri Kapatmak

Bir bash betiği hazırlayalım

nano myscript.sh

Dosya üzerindeki tüm yetkileri kaldırmak için kuralı uygulayalım.

chmod 000 myscript.sh

Bu ayar ile dosya üzerinde okuma, yazma veya çalıştırma yetkisi kimseye verilmez. Yalnızca sistem yöneticisi özel izinlerle müdahale edebilir.

Tüm Kullanıcıları Yetkilendirme

Tüm kullanıcıların dosyayı serbestçe kullanabilmesi için aşağıdaki betiği uygulayalım.

chmod 777 myscript.sh

Bu komut, dosyaya evrensel erişim sağlar. Artık herkes dosyayı okuyabilir, üzerinde değişiklik yapabilir ve çalıştırabilir. Terminalde dosyanın rengi de genellikle yeşil olarak görünür.

Sadece Sahip İçin Tam Yetkilendirme

Güvenlik açısından en sık kullanılan yöntemlerden biri olup dosya sahibine tam yetki tanımlayıp diğer kullanıcıların yalnızca okuma hakkına sahip olmasıdır

chmod 744 myscript.sh

chmod Kullanım İpuçları

find Komutuyla chmodKullanımı

Linux’ta tek tek dosyalara izin vermek yerine, find komutu ile farklı dosyaları aynı anda yönetebilirsiniz.
Mesela bir klasörün içindeki tüm dosyaları 644, tüm klasörleri ise 755 yapmak için:

find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;

Belirli Dosyalara İzin Atamak

Bazen sadece belli türde dosyalar özel izinler vermek için aşağıdaki komutu uygulayabilirsiniz.

find /scripts -name "*.sh" -exec chmod 700 {} \;

Belirli Klasörlere Ayrı İzinler Vermek

Toplu izin değiştirmede en çok yapılan hata, dosyalar ve klasörleri ayırmadan chmod uygulamaktır.
Klasörlerin çalıştırılabilir (x) izni olması gerekirken, dosyalarda her zaman gerekli değildir.

# Klasörlere 755
find /project -type d -exec chmod 755 {} \;

# Dosyalara 644
find /project -type f -exec chmod 644 {} \;

Sık Sorulan Sorular

CHMOD ile CHOWN arasındaki fark nedir?

CHMOD dosya ve klasörlerin erişim izinlerini düzenlerken, CHOWN dosyanın sahibini veya ait olduğu kullanıcı grubunu değiştirir. Bu iki komut genellikle birlikte kullanılır çünkü hem izinlerin hem de sahipliğin doğru tanımlanması güvenlik açısından önemlidir.

Felaket kurtarma senaryolarında CHMOD’un önemi nedir?

Yanlış tanımlanmış izinler, kritik yedekleme dizinlerine veya log dosyalarına erişimi engelleyebilir. Böyle bir durumda, sistem çökmesi sonrasında gerekli veriye ulaşılamaması geri dönüş süresini ciddi şekilde uzatır. Daha da önemlisi, fidye yazılımları genellikle yanlış yapılandırılmış izinlerden faydalanarak yedek dosyaları şifreler veya siler. Bu nedenle, CHMOD izinlerinin doğru ayarlanması yalnızca erişilebilirliği garanti altına almakla kalmaz, aynı zamanda yedeklerin fidye yazılımı saldırılarına karşı korunmasında da hayati rol oynar.

Web sunucularında en güvenli CHMOD ayarları nelerdir?

Genellikle web kök dizinindeki dosyalar için 644, klasörler için 755 tercih edilir. Böylece dosya sahipleri üzerinde tam kontrol sağlarken, diğer kullanıcıların yalnızca okuma veya çalıştırma izni olur.

CHMOD ile Recursive (-R) parametresi nedir?

-R parametresi izinlerin tüm alt dizin ve dosyalara yayılmasını sağlar. Ancak yanlış kullanıldığında kritik dosyalara beklenmeyen erişim açılabilir. Bu yüzden özellikle /etc, /var gibi sistem dizinlerinde recursive kullanımından önce dikkatli analiz yapılmalıdır.

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir