Buyukweb
Linux'ta Dosya İzinleri: chmod, chown ve Güvenlik Rehberi

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.

Büyükweb Teknik Ekibi1 Ağustos 20247 dakika okuma

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ı

  1. 777 izin kullanmayın — Hiçbir zaman gerekli değildir
  2. wp-config.php için 600 — En kısıtlayıcı güvenli seçenek
  3. Özyinelemeli değişiklik dikkatli yapınchmod -R 777 / gibi komutlar felaket yaratır
  4. Web sunucu kullanıcısını bilin — www-data, apache veya hosting kullanıcısı
  5. Düzenli kontrolfind . -perm 777 ile 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:

#güvenlik#linux#komut satırı#terminal#sunucu yönetimi

Bu yazıyı paylaş