1. chmod Komutu Nedir?
chmod (change mode) komutu, Linux ve Unix tabanlı sistemlerde dosya ve dizin izinlerini değiştirmek için kullanılır.
Bu izinler, dosya/dizin üzerinde okuma (read), yazma (write) ve çalıştırma (execute) yetkilerini kontrol eder.
İzinler üç farklı kullanıcı kategorisine atanır:
- Kullanıcı (u) → Dosyanın sahibi
- Grup (g) → Dosyanın sahibi ile aynı grupta olan kullanıcılar
- Diğer (o) → Sistem üzerindeki diğer tüm kullanıcılar
2. Temel Kullanım
chmod [seçenekler] izinler dosya
Örnek:
chmod 755 script.sh
Bu komut script.sh dosyasına kullanıcıya tam yetki, gruba ve diğerlerine okuma/çalıştırma izni verir.
3. İzin Türleri
Harf | Sayısal Karşılık | Anlamı |
---|---|---|
r | 4 | Okuma izni |
w | 2 | Yazma izni |
x | 1 | Çalıştırma izni |
4. İzin Gösterim Biçimleri
chmod iki farklı biçimde kullanılabilir:
- Sayısal (Octal) Notasyon
- Sembolik Notasyon
4.1. Sayısal Notasyon
İzinler üç haneli sayı ile ifade edilir:
- İlk hane: Kullanıcı (u)
- İkinci hane: Grup (g)
- Üçüncü hane: Diğer (o)
Örnekler
chmod 644 dosya.txt # Kullanıcı: rw-, Grup: r--, Diğer: r--
chmod 755 script.sh # Kullanıcı: rwx, Grup: r-x, Diğer: r-x
chmod 777 test.sh # Herkese tam yetki (dikkatli kullanılmalı)
4.2. Sembolik Notasyon
Harflere + (ekleme), – (çıkarma) veya = (tam atama) ile izin verilir.
chmod u+x script.sh # Kullanıcıya çalıştırma izni ekle
chmod g-w dosya.txt # Gruptan yazma iznini kaldır
chmod o=r dosya.txt # Diğerlerine sadece okuma izni ver
3. Sık Kullanılan Argümanlar
Argüman | Açıklama |
---|---|
-R | Dizin içindeki tüm dosya ve alt dizinlere izinleri uygular |
–reference=<dosya> | İzinleri belirtilen dosyadan kopyalar |
–verbose | Yapılan değişiklikleri ekrana yazar |
6. Örnek Kullanımlar
6.1. Tüm Kullanıcılara Tam Yetki Vermek
chmod 777 test.sh
Açıklama: Herkese okuma, yazma ve çalıştırma izni verir (güvenlik riski olabilir).
6.2. Sadece Kullanıcıya Çalıştırma İzni Vermek
chmod u+x script.sh
Açıklama: Kullanıcıya çalıştırma izni ekler, diğer izinleri değiştirmez.
6.3. Bir Dizin ve İçindekilere Rekürsif İzin Vermek
chmod -R 755 /var/www
Açıklama: /var/www dizini ve altındaki tüm dosya/dizinlere kullanıcıya tam yetki, diğerlerine okuma/çalıştırma izni verir.
6.4. Başka Bir Dosyadan İzin Kopyalamak
chmod --reference=ornek.txt hedef.txt
Açıklama: hedef.txt dosyasının izinlerini ornek.txt ile aynı yapar.
7. İpuçları
- chmod komutu ile yanlış izinler vermek güvenlik riskine yol açabilir.
- Dizinlere çalıştırma izni verilmezse, içerik listelenemez.
- Script dosyaları çalıştırılabilmesi için x iznine sahip olmalıdır.
- Sistem dosyalarında izin değiştirirken root yetkisi gerekebilir.