
Linux'ta Dosya İzinleri: chmod, chown ve Güvenlik Rehberi
Linux'ta chmod ve chown komutları nasıl kullanılır? Dosya izinleri okuma, yazma ve çalıştırma hakları ile WordPress güvenliği için doğru izin yapılandırması rehberi.
Linux'ta Dosya İzinleri: chmod, chown ve Güvenlik Rehberi
Linux dosya sistemi, her dosya ve dizin için ayrıntılı erişim kontrolü sağlar. Doğru dosya izinleri web güvenliğinin temelini oluşturur. Çok kısıtlayıcı izinler uygulamanızı bozarken çok geniş izinler güvenlik açığı yaratır. Bu rehberde Linux dosya izin sistemini ve pratik kullanımını ele alıyoruz.
Linux İzin Sistemi Temelleri
İzin Üçlüsü
Her dosya ve dizin için üç grup izin bulunur:
-rwxr-xr-x 1 kullanici grup 4096 Jan 15 12:00 dosya.txt
│└─┬─┘└─┬─┘└─┬──┘
│ │ │ └── Diğerleri (others) izinleri
│ │ └────── Grup (group) izinleri
│ └─────────── Sahip (owner) izinleri
└────────────── Dosya türü (- = dosya, d = dizin, l = symlink)
İzin Türleri
| Sembol | Değer | Dosyalar | Dizinler |
|---|---|---|---|
| r | 4 | Okuma | İçeriği listeleme |
| w | 2 | Yazma/değiştirme | Dosya oluşturma/silme |
| x | 1 | Çalıştırma | Dizine girme |
| - | 0 | İzin yok | İzin yok |
İzin Hesaplama
İzinler toplam değerle belirtilir:
rwx = 4+2+1 = 7
rw- = 4+2+0 = 6
r-x = 4+0+1 = 5
r-- = 4+0+0 = 4
--- = 0+0+0 = 0
Yaygın izin değerleri:
- 644 (rw-r--r--) = Dosya için standart
- 755 (rwxr-xr-x) = Dizin ve çalıştırılabilir dosyalar için
- 600 (rw-------) = Hassas dosyalar (private key, wp-config.php)
- 777 (rwxrwxrwx) = UYARI: Herkese tam erişim (ASLA kullanmayın)
chmod Komutu
Sayısal Format ile
chmod 644 dosya.txt # -rw-r--r--
chmod 755 script.sh # -rwxr-xr-x
chmod 600 wp-config.php # -rw-------
chmod 700 ozel-klasor/ # drwx------
chmod -R 755 public_html/ # Özyinelemeli (tüm alt klasörler dahil)
Sembolik Format ile
chmod u+x script.sh # Sahibe çalıştırma ekle
chmod g-w dosya.txt # Gruptan yazma kaldır
chmod o-rwx gizli.txt # Diğerlerinden tüm izinleri kaldır
chmod a+r dosya.txt # Herkese okuma ekle (a = all)
Semboller:
- u = user (sahip)
- g = group (grup)
- o = others (diğerleri)
- a = all (herkes)
Operatörler:
- = izin ekle
- = izin kaldır
- = = izin ata (diğerlerini sıfırlar)
chown Komutu - Sahip Değiştirme
chown kullanici dosya.txt # Sahip değiştir
chown kullanici:grup dosya.txt # Sahip ve grup değiştir
chown :yenigruP dosya.txt # Sadece grubu değiştir
chown -R www-data:www-data /var/www/ # Özyinelemeli sahip değiştir
Web Sunucu Kullanıcısı
Web sunucusu (Apache/Nginx/LiteSpeed) genellikle şu kullanıcı ile çalışır:
- Apache: www-data (Debian/Ubuntu) veya apache (CentOS/AlmaLinux)
- cPanel: kullanici veya nobody
- LiteSpeed: nobody veya hosting kullanıcısı
WordPress için Güvenli Dosya İzinleri
WordPress'in doğru çalışması için:
Dosyalar
find /home/kullanici/public_html -type f -exec chmod 644 {} \;
Dizinler
find /home/kullanici/public_html -type d -exec chmod 755 {} \;
Hassas Dosyalar
chmod 600 /home/kullanici/public_html/wp-config.php
chmod 644 /home/kullanici/public_html/.htaccess
wp-content/uploads Yazma İzni
WordPress'in dosya yükleyebilmesi için:
chmod -R 755 /home/kullanici/public_html/wp-content/uploads/
Dosya İzinleri Kontrolü
# Tek dosya/dizin
ls -la wp-config.php
# Klasördeki tüm dosyalar
ls -la public_html/
# Özel izin araması (777 gibi güvensiz izinleri bul)
find /home/kullanici/ -perm 777 -type f
find /home/kullanici/ -perm -o+w -type f # Dünyaya açık yazılabilir dosyalar
Yaygın İzin Sorunları
Sorun: "Permission Denied"
Web siteniz dosyalara erişemiyor.
Çözüm:
# Web sunucu kullanıcısına okuma izni ver
chmod 644 sorunlu-dosya.php
chmod 755 sorunlu-klasor/
Sorun: WordPress Resim Yükleyemiyor
chmod 755 wp-content/uploads/
# Veya
chown -R www-data:www-data wp-content/uploads/
Sorun: WordPress Eklenti/Tema Kuramıyor
chmod 755 wp-content/plugins/
chmod 755 wp-content/themes/
Sorun: wp-config.php'de Hata
chmod 644 wp-config.php
# veya daha kısıtlayıcı
chmod 600 wp-config.php
Özel Bit: setuid, setgid, sticky bit
Sticky Bit
Dizinde sticky bit ile yalnızca dosya sahibi dosyayı silebilir:
chmod +t /tmp/paylasim/ # Sticky bit ekle
ls -la → drwxrwxrwt (sondaki 't')
Linux'ın /tmp dizini sticky bit içerir.
umask - Varsayılan İzinler
umask, yeni oluşturulan dosya ve dizinlerin varsayılan izinlerini belirler:
umask # Mevcut umask göster (genellikle 0022)
umask 027 # Yeni varsayılan: dosyalar 640, dizinler 750
- umask 022 → Dosyalar 644 (666-022), Dizinler 755 (777-022)
- umask 027 → Dosyalar 640 (666-027), Dizinler 750 (777-027)
Güvenlik İpuçları
- 777 izin kullanmayın — Hiçbir zaman gerekli değildir
- wp-config.php için 600 — En kısıtlayıcı güvenli seçenek
- Özyinelemeli değişiklik dikkatli yapın —
chmod -R 777 /gibi komutlar felaket yaratır - Web sunucu kullanıcısını bilin — www-data, apache veya hosting kullanıcısı
- Düzenli kontrol —
find . -perm 777ile güvensiz izinleri periyodik kontrol edin
Büyükweb VDS Sunucularda İzin Yönetimi
Büyükweb VDS sunucular ile root erişimi alarak tüm sistem dosyaları üzerinde tam kontrol sağlarsınız. SELinux veya AppArmor gibi ek güvenlik katmanlarını da etkinleştirebilirsiniz.
Sonuç
Linux dosya izinleri, web güvenliğinin temelini oluşturur. WordPress kurulumları için 644/755 kuralını uygulayın, wp-config.php'yi 600 ile koruyun ve 777 izninden kaçının. Dosya izinlerini düzenli kontrol etmek, olası güvenlik açıklarını erken tespit etmenizi sağlar.
Pratik Linux Komutlari
Dosya Yonetimi
find ile kriterlere gore arama yapin. du -sh ile dizin boyutu, ncdu ile interaktif analiz. locate ile hizli dosya bulma. rsync ile dosya senkronizasyonu.
Surec Yonetimi
ps aux ile surecleri goruntuleyin. kill -9 ile sonlandirin. nohup ile arka planda calistirin. screen/tmux ile coklu terminal. systemctl ile servis yonetimi.
Metin Isleme
grep -r ile arama, sed ile toplu degisiklik, awk ile sutun cikarma. jq ile JSON isleme. tail -f ile canli log takibi. wc ile satir/kelime sayma.
Ag Komutlari
ss -tulpn ile portlar, curl ile HTTP istekleri, mtr ile traceroute, tcpdump ile trafik yakalama. dig ile DNS sorgulari. wget ile dosya indirme.
Zamanlama
crontab -e ile zamanlanmis gorevler. Yedekleme, temizlik otomasyonu. systemd timer ile gelismis zamanlama.
Disk Yonetimi
df -h ile kullanim, lsblk ile diskler. LVM ile esnek yonetim. RAID yapilandirmasi.
Sik Sorulan Sorular
Nereden baslamaliyim?
Temel komutlar (ls, cd, cp, mv, rm), editior (nano/vim), izinler (chmod) ve paket yonetimi (apt/dnf) ile baslayin.
Bash script nasil yazilir?
#!/bin/bash ile baslayin. Degiskenler, kosullar, donguler ogrenin. chmod +x ile calistirin.
Sonuc
Linux komut satiri sunucu yonetiminin vazgecilmez aracidir. Pratik yaparak becerilerinizi gelistirin.
En Sik Kullanilan Linux Komutlari
| Komut | Aciklama | Ornek |
|---|---|---|
| ls -la | Detayli dosya listesi | ls -la /var/www |
| grep -r | Icerik arama | grep -r "error" /var/log |
| find | Dosya bulma | find / -name "*.conf" |
| chmod | Izin degistirme | chmod 755 dosya.sh |
| chown | Sahiplik degistirme | chown www-data /var/www |
| systemctl | Servis yonetimi | systemctl restart nginx |
| journalctl | Log goruntuleme | journalctl -u nginx -f |
| df -h | Disk kullanimi | df -h / |
| free -m | Bellek kullanimi | free -m |
| ss -tulpn | Ag baglantilari | ss -tulpn |
Shell Scripting Temelleri
Bash script ile tekrarli gorevleri otomatiklestirin:
Yedekleme Scripti
Otomatik yedekleme ile veritabani ve dosyalarinizi duzenli yedekleyin. mysqldump ile veritabani, tar ile dosya arsivi olusturun.
Disk Izleme
Disk kullanimini izleyen ve esik degerini astiginda bildirim gonderen script yazin.
Log Analiz
Apache/Nginx loglarini analiz ederek en cok ziyaret edilen sayfalar ve supheli IP adresleri raporlayan script olusturun.
Hosting ve Sunucu Terimleri Sozlugu
| Terim | Aciklama |
|---|---|
| VDS | Virtual Dedicated Server - Sanal ozel sunucu |
| NVMe SSD | Non-Volatile Memory Express - En hizli disk teknolojisi |
| LiteSpeed | Yuksek performansli web sunucu yazilimi |
| CloudLinux | Paylasimli hosting icin kaynak izolasyon isletim sistemi |
| cPanel | Populer web hosting kontrol paneli |
| Plesk | Web hosting ve sunucu yonetim paneli |
| KVM | Kernel-based Virtual Machine - Tam sanallastirma teknolojisi |
| DDoS | Distributed Denial of Service - Dagitik hizmet engelleme saldirisi |
| SSL/TLS | Veri iletisimini sifreleyen guvenlik protokolu |
| TTFB | Time to First Byte - Sunucu yanit suresi |
| CDN | Content Delivery Network - Icerik dagitim agi |
| WAF | Web Application Firewall - Web uygulama guvenligi duvari |
| IOPS | Input/Output Operations Per Second - Disk performans olcusu |
| Uptime | Sunucunun kesintisiz calisma suresi yuzdesi |
| Bandwidth | Veri transfer kapasitesi |
Bu terimleri anlamak, hosting ve sunucu hizmetlerini daha bilinçli secmenize yardimci olur. Detayli bilgi icin Buyukweb blog yazilarini takip edin veya teknik destek ekibimize danisIn.
Etiketler:

