Linux Sunucularda Dosya İzinleri ve Sahiplik Yönetimi Rehberi

Linux Sunucularda Dosya İzinleri ve Sahiplik Yönetimi Rehberi - Corelux
29 Eyl 2026
Paylaş:

Linux Sunucularda Dosya İzinleri ve Sahiplik Yönetimi Rehberi

Son Güncelleme: Eylül 2026

Linux dosya izinleri, bir sunucuda hangi kullanıcının hangi dosyayı okuyabileceğini, yazabileceğini veya çalıştırabileceğini belirleyen temel güvenlik katmanıdır. Özellikle hosting, VPS, VDS ve uygulama sunucularında hatalı izinler; veri sızıntısı, web sitesi bozulması, zararlı dosya çalıştırma ve servis kesintisi gibi ciddi sonuçlara yol açabilir.

Bu rehberde chmod, chown, kullanıcı-grup mantığı, web dizinlerinde doğru izin seçimi, sık yapılan hatalar ve pratik sorun giderme adımları detaylı şekilde ele alınmaktadır. Amaç, Linux tabanlı sunucularda güvenli ve sürdürülebilir bir dosya yetkilendirme düzeni kurmanıza yardımcı olmaktır.

İçindekiler

Dosya İzinleri Nedir?

Dosya izinleri, Linux işletim sisteminde bir dosya veya dizin üzerinde kimlerin işlem yapabileceğini belirleyen erişim kurallarıdır. Bu kurallar yalnızca dosyaları korumak için değil, aynı zamanda çalışan servislerin güvenli sınırlar içinde kalmasını sağlamak için de kullanılır. Bir web uygulamasında yanlış yapılandırılmış izinler, ziyaretçilerin normalde erişmemesi gereken yapılandırma dosyalarını görmesine veya saldırganların sunucuya zararlı betik yüklemesine neden olabilir.

Linux sistemlerde her dosya ve dizinin bir sahibi, bir grubu ve üç temel izin kategorisi vardır: okuma, yazma ve çalıştırma. Örneğin bir WordPress kurulumunda wp-config.php dosyasının herkes tarafından yazılabilir olması büyük bir risktir. Benzer şekilde, yükleme dizinlerine gereksiz çalıştırma izni verilmesi, yüklenen zararlı bir PHP dosyasının çalıştırılmasını kolaylaştırabilir.

Sunucu yönetiminde izinler yalnızca teknik bir detay olarak görülmemelidir. İzinler; yetki ayrımı, uygulama izolasyonu, veri gizliliği ve operasyonel süreklilik için kritik öneme sahiptir. Birden fazla web sitesi barındıran paylaşımlı hosting ortamlarında her hesabın kendi dosyalarına erişebilmesi, ancak diğer hesapların dosyalarına erişememesi gerekir. Bu nedenle dosya izinleri, hosting güvenliğinin temel yapı taşlarından biridir.

Corelux üzerinde Linux Hosting, Sanal Sunucu veya Kiralık Sunucu kullanırken dosya izinlerinin doğru planlanması; performans, güvenlik ve yönetilebilirlik açısından uzun vadeli avantaj sağlar.

Linux İzin Mantığı Nasıl Çalışır?

Linux izin sistemi üç ana kullanıcı kapsamına dayanır: user yani dosya sahibi, group yani dosyanın bağlı olduğu grup ve others yani bunların dışındaki diğer kullanıcılar. Her kapsam için üç temel izin bulunur: read yani okuma, write yani yazma ve execute yani çalıştırma.

Okuma, Yazma ve Çalıştırma İzinleri

  • read: Dosya içeriğinin okunmasına veya dizin içeriğinin listelenmesine izin verir. Sembolik gösterimi r, sayısal değeri 4 olarak kabul edilir.
  • write: Dosyanın değiştirilmesine veya dizin içinde dosya oluşturma, silme ve yeniden adlandırma işlemlerine izin verir. Sembolik gösterimi w, sayısal değeri 2 olarak kullanılır.
  • execute: Dosyanın çalıştırılmasına veya dizine girilebilmesine izin verir. Sembolik gösterimi x, sayısal değeri 1 olarak hesaplanır.

İzinleri görüntülemek için en sık kullanılan komut ls -l komutudur. Örnek bir çıktı şu şekilde görünür:

-rw-r--r-- 1 siteuser sitegroup 2048 Sep 22 10:15 index.php
drwxr-xr-x 5 siteuser sitegroup 4096 Sep 22 10:20 public_html

İlk satırdaki -rw-r--r-- ifadesi bir dosyayı temsil eder. İlk karakter dosya türünü gösterir; - normal dosya, d dizin anlamına gelir. Sonraki üçlüler sırasıyla sahibi, grubu ve diğer kullanıcılar için izinleri belirtir. Bu örnekte dosya sahibi okuyabilir ve yazabilir; grup ile diğer kullanıcılar yalnızca okuyabilir.

Sayısal İzin Gösterimi

Linux dünyasında izinler çoğu zaman üç haneli sayılarla ifade edilir. Örneğin 644, sahibi için okuma ve yazma, grup ve diğerleri için yalnızca okuma izni anlamına gelir. 755 ise sahibi için tam izin, grup ve diğerleri için okuma ve çalıştırma izni verir. Dizinlerde çalıştırma izni, dizine girilebilmesi açısından önemlidir; bu nedenle web dizinlerinde çoğu zaman 755 kullanılır.

İzin Anlamı Tipik Kullanım
644 Sahip okuyup yazabilir, diğerleri okuyabilir PHP, HTML, CSS, JS dosyaları
755 Sahip tam yetkili, diğerleri okuyabilir ve çalıştırabilir Web dizinleri ve çalıştırılabilir betikler
600 Yalnızca sahip okuyup yazabilir Özel anahtarlar ve gizli yapılandırma dosyaları
700 Yalnızca sahip dizine girebilir ve işlem yapabilir Kişisel kullanıcı dizinleri ve hassas klasörler
777 Herkes okuyabilir, yazabilir ve çalıştırabilir Genellikle önerilmez; geçici test dışında kullanılmamalıdır

Hosting Ortamında Doğru İzinler

Hosting ortamlarında izin yönetimi, klasik Linux sunucu yönetimine göre daha hassastır. Çünkü aynı sunucuda birden fazla kullanıcı, web sitesi, veritabanı bağlantı bilgisi, e-posta yapılandırması ve uygulama dosyası bulunabilir. Bu nedenle her hesabın kendi alanında yetkili olması, ancak diğer hesapların verilerine erişememesi gerekir.

Web Sitesi Dosyaları İçin Önerilen İzinler

Genel bir Linux hosting yapısında web dosyaları için güvenli başlangıç noktası şu şekildedir:

  • Dosyalar: PHP, HTML, CSS, JavaScript ve görsel dosyaları için çoğunlukla 644 yeterlidir.
  • Dizinler: Web kök dizini ve alt klasörler için çoğunlukla 755 tercih edilir.
  • Yapılandırma dosyaları: Veritabanı şifresi içeren dosyalarda 600 veya platforma uygun daha kısıtlı izinler kullanılmalıdır.
  • Yükleme dizinleri: Kullanıcıların dosya yüklediği alanlarda yazma izni gerekir; ancak mümkünse betik çalıştırma engellenmelidir.

Örneğin WordPress gibi içerik yönetim sistemlerinde wp-content/uploads dizini yazılabilir olmalıdır. Ancak bu dizinde PHP dosyalarının çalıştırılması istenmez. Bu tip bir ayrım, dosya izinleriyle birlikte web sunucusu yapılandırması kullanılarak yapılmalıdır. Sadece chmod komutlarıyla tüm güvenlik ihtiyacını karşılamak çoğu zaman yeterli değildir.

PHP Çalışma Modu Neden Önemlidir?

PHP uygulamalarının hangi kullanıcıyla çalıştığı, dosya sahipliği açısından kritik bir konudur. PHP-FPM havuzları her site için farklı kullanıcıyla çalışacak şekilde yapılandırılmışsa, bir web sitesinin diğer sitenin dosyalarına erişmesi zorlaşır. Bu yaklaşım izolasyon sağlar ve paylaşımlı hosting güvenliğini artırır.

Özellikle yüksek trafik alan siteler veya özel uygulamalar için Türkiye VDS Sunucu gibi izole kaynak sunan çözümler tercih edildiğinde, dosya izinleri ve servis kullanıcıları üzerinde daha ayrıntılı kontrol sağlanabilir. Daha yoğun kaynak ihtiyacı olan projelerde ise Türkiye Kiralık Sunucu seçenekleri ile tam donanım kontrolü elde edilebilir.

chmod, chown ve chgrp Komutlarıyla Yönetim

Linux dosya izinlerini yönetmek için en temel komutlar chmod, chown ve chgrp komutlarıdır. Bu komutlar güçlüdür; ancak yanlış kullanıldıklarında tüm web sitesinin çalışmasını bozabilir veya güvenlik açığı oluşturabilir. Bu nedenle özellikle -R yani recursive (özyinelemeli) kullanımda dikkatli olunmalıdır.

chmod ile İzin Değiştirme

chmod, dosya ve dizin izinlerini değiştirmek için kullanılır. Aşağıdaki örnek, bir dosyayı standart web dosyası iznine getirir:

chmod 644 index.php

Bir dizine standart web dizini izni vermek için şu komut kullanılabilir:

chmod 755 public_html

Tüm dosya ve dizinleri aynı izne getirmek genellikle doğru değildir. Bunun yerine dosyalar ve dizinler ayrı ayrı hedeflenmelidir:

find public_html -type d -exec chmod 755 {} \;
find public_html -type f -exec chmod 644 {} \;

Bu komutlar public_html altındaki dizinleri 755, dosyaları ise 644 yapar. Böylece dizinlerin içine girilebilir, dosyalar okunabilir; ancak gereksiz yazma ve çalıştırma izinleri sınırlandırılmış olur.

chown ile Sahiplik Değiştirme

chown, dosya sahibi ve grubunu değiştirmek için kullanılır. Örneğin bir web sitesinin tüm dosyalarını siteuser kullanıcısına ve sitegroup grubuna geçirmek için şu komut kullanılabilir:

chown -R siteuser:sitegroup public_html

Bu komut dikkatle kullanılmalıdır. Yanlış kullanıcıya sahiplik vermek, uygulamanın dosya yazamamasına veya gereğinden fazla yetki kazanmasına neden olabilir. Özellikle kontrol paneli kullanılan sunucularda sahiplik işlemleri panelin beklediği kullanıcı-grup yapısına uygun yapılmalıdır.

chgrp ile Grup Yönetimi

chgrp, yalnızca grup bilgisini değiştirmek için kullanılır. Bir ekibin aynı proje dosyaları üzerinde kontrollü çalışması gereken durumlarda grup izinleri oldukça kullanışlıdır:

chgrp -R developers /var/www/proje
chmod -R g+rw /var/www/proje

Bu yaklaşımda geliştiriciler aynı gruba eklenir ve proje dizininde grup yazma izni açılır. Ancak üretim ortamlarında bu yöntemin kontrollü uygulanması gerekir. Her geliştiriciye doğrudan canlı sunucuda yazma yetkisi vermek yerine, sürüm kontrol sistemi ve dağıtım otomasyonu kullanmak daha güvenlidir.

Sık Yapılan Güvenlik Hataları

Dosya izinleriyle ilgili güvenlik açıklarının önemli bir kısmı basit ama etkisi büyük hatalardan kaynaklanır. Bu hatalar çoğu zaman bir eklenti kurulumu, hızlı bir sorun çözme denemesi veya eksik bilgi nedeniyle yapılır.

  • 777 iznini kalıcı kullanmak: Bir klasöre herkesin yazabilmesi, saldırganların dosya eklemesini veya mevcut dosyaları değiştirmesini kolaylaştırır.
  • Gizli dosyaları herkese okunabilir bırakmak: .env, config.php veya özel anahtar dosyaları gibi hassas içerikler kısıtlı izinlerle korunmalıdır.
  • Yanlış sahiplik vermek: Web sunucusu kullanıcısına tüm proje üzerinde gereksiz yazma yetkisi vermek, saldırı yüzeyini büyütür.
  • Yükleme dizinlerinde betik çalıştırmaya izin vermek: Dosya yükleme alanlarında PHP veya benzeri betiklerin çalışması engellenmelidir.
  • Recursive komutları kontrolsüz çalıştırmak: chmod -R 777 gibi komutlar kısa vadede hatayı gizleyebilir, ancak uzun vadede ciddi güvenlik riski oluşturur.

Özellikle Laravel, WordPress, özel PHP uygulamaları ve dosya yükleme özelliği bulunan panellerde izin hataları çok sık görülür. Laravel projelerinde storage ve bootstrap/cache dizinlerinin yazılabilir olması gerekir; ancak tüm proje dizinine yazma izni vermek doğru değildir. WordPress tarafında ise eklenti ve tema güncellemeleri için belirli dizinlerde yazma izni gerekebilir, fakat yapılandırma dosyaları mümkün olduğunca kısıtlı tutulmalıdır.

Güvenlik açısından izin yönetimi, tek başına yeterli bir savunma değildir. SSL kullanımı, güncel yazılımlar, güvenli şifre politikası, web uygulama güvenliği ve düzenli yedekleme ile birlikte düşünülmelidir. Bu kapsamda web siteleri için SSL Sertifikası ve veri kaybı risklerine karşı Yedekleme Hizmeti kullanımı önemlidir.

İzin Kaynaklı Sorunları Giderme

Dosya izinleri hatalı olduğunda web uygulamalarında farklı belirtiler ortaya çıkabilir. Bunlar arasında 403 Forbidden, yükleme hataları, önbellek yazma sorunları, tema veya eklenti güncelleme problemleri, log dosyası oluşturamama ve geçici dosya yazamama gibi durumlar bulunur. Sorunu çözmek için rastgele izin vermek yerine sistematik ilerlemek gerekir.

403 Forbidden Hatası

403 Forbidden hatası çoğu zaman web sunucusunun ilgili dosya veya dizine erişemediğini gösterir. İlk kontrol edilmesi gereken noktalar dizin izinleri, dosya izinleri ve sahiplik bilgileridir:

ls -ld public_html
ls -l public_html/index.php

Dizinlerde çalıştırma izni yoksa web sunucusu dizine giremez. Dosyalarda okuma izni yoksa içerik sunulamaz. Bu nedenle dizinler için 755, dosyalar için 644 çoğu senaryoda doğru başlangıç değeridir.

Uygulama Dosya Yazamıyor

Bir uygulama önbellek, oturum veya yükleme dosyası oluşturamıyorsa ilgili dizinin sahibi ve yazma izinleri kontrol edilmelidir. Örneğin Laravel için şu dizinler önemlidir:

ls -ld storage bootstrap/cache

Gerekirse uygulamanın çalıştığı kullanıcıya uygun sahiplik verilebilir:

chown -R siteuser:sitegroup storage bootstrap/cache
chmod -R 775 storage bootstrap/cache

Burada 775 izni, grup tabanlı çalışma yapılarında kullanılabilir. Ancak herkes için yazma izni veren 777 değeri kalıcı çözüm olarak tercih edilmemelidir.

Dosya Sahipliği Karışmışsa

FTP, SSH, kontrol paneli ve otomatik dağıtım araçlarının farklı kullanıcılarla dosya oluşturması sahiplik karmaşasına yol açabilir. Bu durumda proje dizinindeki dosyaların hangi kullanıcıya ait olduğu kontrol edilmelidir:

find public_html -not -user siteuser -ls

Beklenmeyen sahiplikler tespit edilirse, uygulamanın çalışma modeline uygun şekilde düzenleme yapılmalıdır. Ancak sistem dizinlerinde veya panel tarafından yönetilen alanlarda toplu sahiplik değiştirmek risklidir.

En İyi Uygulamalar

Güvenli bir Linux sunucu ortamı için dosya izinleri düzenli olarak kontrol edilmeli ve standartlaştırılmalıdır. Aşağıdaki uygulamalar, hem küçük web siteleri hem de kurumsal uygulamalar için güçlü bir temel oluşturur.

  1. En az yetki prensibini uygulayın: Her dosya, dizin, kullanıcı ve servis yalnızca ihtiyaç duyduğu minimum yetkiye sahip olmalıdır.
  2. Dosya ve dizin izinlerini ayırın: Tüm proje klasörüne tek bir izin vermek yerine dosyaları ve dizinleri ayrı değerlendirin.
  3. Yazılabilir alanları sınırlayın: Uygulamanın yalnızca gerçekten ihtiyaç duyduğu dizinlere yazmasına izin verin.
  4. Hassas dosyaları koruyun: .env, özel anahtar, yedek ve yapılandırma dosyalarını mümkün olduğunca kısıtlı tutun.
  5. Yükleme dizinlerinde çalıştırmayı engelleyin: Kullanıcı yüklemelerinin bulunduğu klasörlerde betik çalıştırma riskini azaltın.
  6. Değişikliklerden önce yedek alın: Toplu chmod veya chown işlemleri öncesinde dosya ve veritabanı yedeği oluşturun.
  7. Kontrol paneli uyumluluğuna dikkat edin: cPanel, Plesk veya farklı panellerde kullanıcı-grup yapısı değişebilir; panel beklentilerini bozmayın.
  8. Düzenli denetim yapın: Beklenmeyen 777 izinlerini, farklı kullanıcıya ait dosyaları ve şüpheli yazılabilir alanları periyodik olarak kontrol edin.

Basit bir denetim için herkes tarafından yazılabilir dosya ve dizinleri listeleyebilirsiniz:

find /var/www -perm -0002 -type f -o -perm -0002 -type d

Bu komutun çıktısı dikkatle incelenmelidir. Bazı geçici dizinlerin yazılabilir olması normal olabilir; ancak web kök dizini altındaki beklenmeyen yazılabilir dosyalar güvenlik riski oluşturabilir.

Projelerinizi daha güvenli ve yönetilebilir bir altyapıda barındırmak istiyorsanız, ihtiyaçlarınıza göre Hosting, Türkiye VPS Sunucu veya Bulut Sunucu çözümlerini değerlendirebilirsiniz. İzole kaynaklar, doğru izin modeli ve düzenli bakım birlikte kullanıldığında web uygulamalarının güvenliği belirgin şekilde artar.

Sıkça Sorulan Sorular

Linux sunucularda dosyalar için en güvenli izin nedir?

Genel web dosyaları için çoğu durumda 644 güvenli bir başlangıç değeridir. Ancak yapılandırma dosyaları, özel anahtarlar ve gizli bilgiler içeren dosyalar için 600 gibi daha kısıtlı izinler tercih edilmelidir. İdeal izin değeri uygulamanın çalışma modeline göre belirlenmelidir.

Dizinlerde neden genellikle 755 izni kullanılır?

Dizinlerde x izni, dizine girilebilmesi için gereklidir. 755 izni, dizin sahibine tam yetki verirken grup ve diğer kullanıcılara okuma ve giriş hakkı tanır. Web sunucusunun dizin içindeki dosyalara ulaşabilmesi için bu yapı çoğu zaman uygundur.

777 izni neden tehlikelidir?

777 izni herkesin ilgili dosya veya dizin üzerinde okuma, yazma ve çalıştırma yetkisine sahip olması anlamına gelir. Bu durum saldırganların dosya yüklemesini, mevcut dosyaları değiştirmesini veya zararlı betikler çalıştırmasını kolaylaştırabilir. Geçici test dışında kalıcı olarak kullanılmamalıdır.

chmod ve chown arasındaki fark nedir?

chmod dosya veya dizinin izinlerini değiştirir; yani kimin okuyabileceğini, yazabileceğini veya çalıştırabileceğini belirler. chown ise dosya veya dizinin sahibini ve grubunu değiştirir. Güvenli bir yapı için iki komutun da doğru kullanılması gerekir.

WordPress için hangi izinler önerilir?

WordPress kurulumlarında genel olarak dosyalar için 644, dizinler için 755 tercih edilir. wp-config.php gibi hassas dosyalar daha kısıtlı izinlerle korunabilir. wp-content/uploads dizininin yazılabilir olması gerekir; ancak bu dizinde PHP çalıştırılması engellenmelidir.

İzin değiştirmeden önce yedek almak gerekli mi?

Evet. Özellikle chmod -R veya chown -R gibi toplu işlemlerden önce yedek almak önemlidir. Yanlış bir komut, sitenin çalışmamasına veya güvenlik açıklarına neden olabilir. Dosya yedekleri ve veritabanı yedekleri birlikte planlanmalıdır.

Sonuç

Linux dosya izinleri ve sahiplik yönetimi, sunucu güvenliğinin en temel ama en kritik konularından biridir. Doğru izin modeli; web sitelerinin güvenli çalışmasını, kullanıcıların birbirinden izole edilmesini, hassas yapılandırma dosyalarının korunmasını ve uygulamaların ihtiyaç duyduğu alanlara kontrollü şekilde yazabilmesini sağlar.

Başarılı bir izin yönetimi için dosyalar ve dizinler ayrı değerlendirilmeli, 777 gibi geniş yetkilerden kaçınılmalı, sahiplik yapısı uygulamanın çalışma kullanıcısına göre düzenlenmeli ve değişikliklerden önce mutlaka yedek alınmalıdır. Ayrıca izin yönetimi; SSL, düzenli güncelleme, güvenli panel kullanımı, log takibi ve yedekleme stratejisiyle birlikte ele alınmalıdır.

Corelux; web siteleri, uygulamalar ve kurumsal projeler için Linux Hosting, Sanal Sunucu, Kiralık Sunucu ve Yedekleme Hizmeti seçenekleri sunar. Projenizin güvenli, ölçeklenebilir ve yönetilebilir bir altyapıda çalışması için doğru sunucu planı ve doğru izin politikası birlikte değerlendirilmelidir.

Yazar

Boran BAR

Chat on WhatsApp