chmod Hesaplayıcı
| Kim | Dosyada | Dizinde |
|---|
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Bu araç tamamen tarayıcında çalışır; girdiğin bilgiler hiçbir sunucuya gönderilmez.
755 ne demek, 644 ne zaman?
Sahip, grup ve diğerleri için okuma, yazma ve çalıştırma izinlerini işaretle; sayısal değer, sembolik gösterim ve chmod komutu aynı anda güncellensin. İstersen sayıyı ya da rwx dizisini yaz, kutucuklar kendini ayarlasın.
chmod 755 ve 644 ne anlama gelir?
chmod 755, sahibine okuma, yazma ve çalıştırma (rwx); grup ve diğer kullanıcılara yalnızca okuma ve çalıştırma (r-x) izni verir. Web sunucularında dizinler ve çalıştırılabilir betikler için standart değerdir. chmod 644 ise sahibine okuma ve yazma (rw-), diğer herkese yalnızca okuma (r--) izni verir; HTML, CSS, resim ve PHP dosyaları gibi sıradan dosyalar için kullanılır.
Her rakam bir kullanıcı sınıfını temsil eder ve üç iznin toplamıdır: okuma = 4, yazma = 2, çalıştırma = 1. Yani 7 = 4+2+1 (rwx), 6 = 4+2 (rw-), 5 = 4+1 (r-x), 4 = yalnızca okuma demektir. İlk rakam sahip (user), ikincisi grup (group), üçüncüsü diğerleri (others) içindir.
| Değer | Sembolik | Tipik kullanım |
|---|---|---|
644 | rw-r--r-- | Web dosyaları, yapılandırma dosyalarının çoğu |
755 | rwxr-xr-x | Dizinler, kabuk betikleri, programlar |
600 | rw------- | SSH özel anahtarı, authorized_keys, gizli bilgi içeren dosyalar |
700 | rwx------ | ~/.ssh dizini, yalnızca sahibine ait betikler |
640 | rw-r----- | Grubun okuması gereken gizli yapılandırma (ör. web sunucusu grubu) |
400 | r-------- | Değişmemesi gereken anahtar ve sertifika dosyaları |
1777 | rwxrwxrwt | /tmp gibi herkesin yazdığı ama yalnızca kendi dosyasını silebildiği dizinler |
Dizinlerde izinler farklı çalışır
Bir dizinde okuma (r) içindekileri listelemeyi, yazma (w) içinde dosya oluşturup silmeyi, çalıştırma (x) ise dizine girmeyi ve içindeki dosyalara erişmeyi sağlar. x izni olmayan bir dizindeki dosyalara, dosyanın kendi izni ne olursa olsun ulaşılamaz. Bu yüzden dizinler 755, dosyalar 644 olur; dosyalara gereksiz yere x vermemek gerekir.
Özel bitler: setuid, setgid, sticky
Dört haneli değerlerde ilk rakam özel bitlerdir: 4 = setuid (program, çalıştıranın değil sahibinin yetkisiyle çalışır;
passwd böyledir), 2 = setgid (dizinde yeni dosyalar dizinin grubunu miras alır) ve
1 = sticky (dizindeki dosyayı yalnızca sahibi silebilir). Sembolik gösterimde ilgili x yerine s ya da
t görünür; çalıştırma izni yoksa büyük harfle (S, T) yazılır.
WordPress için doğru dosya izinleri
WordPress’in kendi belgeleri de aynı temel kuralı önerir: tüm dizinler 755, tüm dosyalar 644.
wp-config.php veritabanı şifreni içerdiği için daha sıkı tutulmalıdır. PHP, dosyaların sahibi olan kullanıcıyla çalışıyorsa
(PHP-FPM’in kullanıcı başına havuzları, suEXEC) 600 yeterlidir; web sunucusu dosyayı grup üzerinden okuyorsa
640 kullan. WordPress’in sağlamlaştırma rehberi 440 ve 400’ü de anar; bu durumda dosyayı güncellemek için izni geçici olarak açman gerekir.
Site kökünde toplu düzeltme için şu iki komut yeterlidir:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod 600 wp-config.php
Eklenti yüklerken “FTP bilgisi” istenmesi ya da yükleme hatası genellikle izinden değil sahiplikten kaynaklanır.
Böyle bir durumda izni 777 yapmak yerine dosyaların doğru kullanıcıya ait olduğundan emin ol (chown). Krowten
WordPress hosting ve web hosting paketlerinde dosyalar hesabının
kullanıcısıyla çalışır; varsayılan izinlerle sorunsuz çalışır.
chmod 777 neden tehlikeli?
777, sunucudaki her kullanıcıya ve her sürece dosyayı okuma, değiştirme ve çalıştırma izni verir. Web sitesindeki bir açıktan sızan bir saldırgan, 777 olan dizine zararlı PHP dosyası bırakabilir ya da mevcut dosyalara kod ekleyebilir. Paylaşımlı ortamlarda pek çok sunucu, güvenlik nedeniyle yazılabilir izinli PHP dosyalarını hiç çalıştırmaz. Sorunu gerçekten çözen, dosya sahipliğini ve grubunu doğru ayarlamaktır.
Sayısal ve sembolik chmod arasındaki fark
chmod 755 dosya izinlerin tamamını yeniden yazar. Sembolik biçim ise yalnızca belirttiğin kısmı değiştirebilir:
chmod u+x betik.sh sadece sahibine çalıştırma ekler, chmod go-w dosya grup ve diğerlerinden yazmayı kaldırır,
chmod u=rwx,g=rx,o=rx ise 755 ile aynı sonucu verir. Alt dizinlerle birlikte değiştirmek için -R kullanılır;
ancak chmod -R 755 tüm dosyalara da çalıştırma izni verir, bu yüzden yukarıdaki find komutları daha doğrudur.
GNU chmod, dizinlerdeki setuid ve setgid bitlerini 755 gibi üç haneli değerlerle temizlemez; bunun için chmod 00755 ya da
chmod g-s kullanmalısın.
Kendi VPS sunucunda SSH anahtarlarını kurarken de izinler önemlidir: ~/.ssh 700,
authorized_keys ve özel anahtar 600 değilse OpenSSH anahtarı reddedebilir.
Krowten VPS ile root erişimli kendi Linux sunucunu yönet; SSH anahtarını kur, dosya izinlerini ve kullanıcıları dilediğin gibi ayarla.
chmod Hesaplayıcı
hakkında.
chmod 755 mi 644 mü kullanmalıyım?+
Dizinler ve çalıştırılacak betikler için 755, sıradan dosyalar (HTML, PHP, resim, CSS) için 644 kullan. PHP dosyalarının çalışması için x izni gerekmez; web sunucusu onları okuyarak çalıştırır.
chmod 777 vermek güvenli mi?+
Hayır. 777 sunucudaki herkesin dosyayı değiştirmesine izin verir ve saldırganların zararlı kod bırakmasını kolaylaştırır. Yazma hatası alıyorsan izni değil, dosyanın sahibini (chown) düzelt; gerekiyorsa yalnızca ilgili dizine 775 ver.
wp-config.php izni kaç olmalı?+
PHP, dosya sahibinin kullanıcısıyla çalışıyorsa 600, web sunucusu grubu üzerinden okuyorsa 640 önerilir. WordPress’in sağlamlaştırma rehberi 440 veya 400 de önerir; ancak bu durumda dosyayı düzenlemeden önce izni geçici olarak açman gerekir.
SSH “UNPROTECTED PRIVATE KEY FILE” hatası nasıl düzelir?+
Özel anahtarın izinleri fazla açık demektir. chmod 600 ~/.ssh/id_ed25519 ile yalnızca sahibine okuma ve yazma bırak; ~/.ssh dizinini de chmod 700 yap.
Bunlar da işine yarar.
Hepsi ücretsiz.
HTTPS, www ve 301 yönlendirmelerini .htaccess ve Nginx için yaz.
Aracı aç ↗Güçlü Şifre OluşturucuTarayıcında üretilen, hiçbir yere gönderilmeyen güçlü şifreler.
Aracı aç ↗Cron İfadesi OluşturucuZamanlanmış görevler için cron ifadesini yaz, Türkçe açıklamasını gör.
Aracı aç ↗