İstanbul --:--—Sistem durumu
Krowten
ÜCRETSİZ ARAÇ / SUNUCU & GELİŞTİRİCİ

chmod Hesaplayıcı

İzinler
KimOkuma (r)Yazma (w)Çalıştırma (x)
Sahip u
Grup g
Diğer o
Özel bitler
Sık kullanılan değerler
Sayısal—chmod için oktal değer
Sembolik—ls -l çıktısındaki gösterim
KimDosyadaDizinde
komutlar

    
toplu: dizin 755, dosya 644
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.

BU ARAÇ HAKKINDA

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.

Tamamen ücretsizSayısal ↔ sembolik ↔ kutucuksetuid, setgid ve sticky bit

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ğerSembolikTipik kullanım
644rw-r--r--Web dosyaları, yapılandırma dosyalarının çoğu
755rwxr-xr-xDizinler, kabuk betikleri, programlar
600rw-------SSH özel anahtarı, authorized_keys, gizli bilgi içeren dosyalar
700rwx------~/.ssh dizini, yalnızca sahibine ait betikler
640rw-r-----Grubun okuması gereken gizli yapılandırma (ör. web sunucusu grubu)
400r--------Değişmemesi gereken anahtar ve sertifika dosyaları
1777rwxrwxrwt/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
İzinler de, kök erişimi de sende.

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.

VPS paketlerini incele ↗
MERAK EDİLENLER

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.

DEVAMI

Bunlar da işine yarar.
Hepsi ücretsiz.

Tüm araçlar ↗