web-gelistirme-sc.com

Linux sistemlerinde Joomla dosya / dizin izinleri ve sahipliği ile ilgili önerilen uygulamalar?

Geçmişte, Linux sistemlerinde Joomla dosyalarının/dizinlerinin izinleri ve sahipliğiyle ilgili sık sık sorun yaşıyordum.

Sorunlar dahil

  • WinSCP gibi programları kullanarak dosyaları sunucuya aktaramamak.
  • Joomla uzantılarını, eklentilerini vb. Yükleyememe.
  • Tehlikeli izinler ve sahiplik ayarları nedeniyle güvenli olmayan dosya ve klasörler.

Linux sistemlerinde Joomla'da izin ve sahiplik belirlemek için önerilen en iyi uygulamalar nelerdir?

26
TryHarder

Linux barındırma işleminde dosya ve klasör izni sorunlarının birkaç olası nedeni vardır.

1. Dosya ve Klasör İzinleri

Klasör izinlerinin 0755'e ve dosya izinlerinin 0644'e ayarlandığını denetleyin. Akeeba Yönetici Araçları'nın ücretsiz veya ücretli sürümü kullanılarak dosya ve klasör izinlerinin site genelindeki bu standart güvenli ayarlara sıfırlanabileceğini unutmayın.

2. PHP Parametreler

Sistem Bilgileri'ndeki PHP Bilgi sekmesindeki upload_max_filesize parametresini kontrol edin. PHP ayarlar) aracılığıyla genellikle paylaşılan bir barındırma ortamında varsayılan ayarı geçersiz kılabilirsiniz cPanel veya özel bir php.ini dosya.

3. Configuration.php içindeki yanlış Yollar

Tmp ve logs klasörleri için yanlış yollar belirtilmiş olabilir. Bunlar Sistem Yapılandırmasında belirtilir veya sistem dosyalarını doğrudan düzenlemekte rahatsanız doğrudan configuration.php dosyasında güncellenebilir. Yolun ne olması gerektiğinden emin değilseniz, bir dosya oluşturun ve yükleyin whereami.php (veya benzeri) web sitenizin aşağıdaki içeriğe sahip kök klasörüne ekleyin:

<?php
  print 'Current folder is ' . dirname(__FILE__);
?>

[mywebsite].com/whereami.php kök klasörün yolunu görmek için.

Doğru yola sahip olduğunuzda, whereami.php dosya.

4. Uygun değil PHP Dosya İşleyici

Web barındırma, varsayılan PHP dosya işleyici ile yapılandırılmış olabilir, ancak Joomla'nın güvenli dosya izinlerini kullanarak dosya yükleyebilmesi ve çalıştırabilmesi için ideal olarak suPHP veya FastCGI veya benzeri bir dosya kullanıyor olmalıdır.

Ne PHP işleyicinin System -> System Information -> WebServer to PHP Interface.

PHP dosya işleyicilerinin göreli değerleri hakkında: http://boomshadow.net/tech/php-handlers

Paylaşılan bir barındırma ortamında genellikle hangi PHP dosya işleyicisinin etkin olduğunu değiştirme erişiminiz yoktur, ancak web barındırma şirketiniz bunu sizin için değiştirebilir.

Bazen bir geçici çözüm olarak, dosya ve klasör izinleri 0777 olarak değiştirilir, ancak bu web sitenizi savunmasız bir duruma getirir ve 0777 dosya izinlerinden genellikle kaçınılmalıdır.

Web barındırma şirketiniz suPHP veya FastCGI'yi etkinleştiremiyorsa, diğer tek seçenek yeni bir web barındırma şirketi bulmak olabilir.

5. Disk Alanı

Disk alanı kotanızı aşmadığınızdan emin olun.

SORUN GİDERME KONTROL LİSTESİ

Linux sistemlerinde Joomla'da izin ve sahiplik belirlemek için önerilen en iyi uygulamalar nelerdir?

1 ve 4'e bakınız.

WinSCP gibi programları kullanarak dosyaları sunucuya aktaramamak.

Bkz. 1, 2, muhtemelen 4 ve 5.

Joomla uzantılarını, eklentilerini vb. Yükleyememe.

Bkz. 1, 2, 3, 4 ve 5.

Tehlikeli izinler ve sahiplik ayarları nedeniyle güvenli olmayan dosya ve klasörler.

1 ve 4'e bakınız.

22
Neil Robertson

Lütfen izin düzeylerini kontrol edin, dosya ve klasörler için sırasıyla 644 ve 755 olmalıdır.

Çoğu kez izin seviyeleri, bazı sorunlarla karşı karşıya olsa bile, gayet iyi. Bu, belirli dosya ve klasörlerin sahipliğini ve grubunu kontrol etmeniz gerektiği anlamına gelir. Normalde grup ve sahiplik Apache için www-data olarak değiştirilebilir (ubuntu tabanlı web sunucularında kullanılır).

Dosya izinlerini doğrulama. 'a dayalı olarak bu ilginç Joomla belgesine göz atabilirsiniz.

12
Shyam

Benim için kolay bir çözüm genellikle PHP (Fast-) CGI modunda çalışmasına izin vermek ve Joomla dizininin sahipliğini FTP kullanıcısına ayarlamaktır. FTP ve Joomla üzerinden dosyalar da dosya yazabilecektir.

Bunu paylaşılan bir barındırma ortamında (izin veriliyorsa) yapmanın bir yolu, .htaccess dosyanıza böyle bir şey eklemektir:

AddHandler php53-cgi .php

Ayrıca farklı modlar hakkında bir genel bakışı inceleyin.

8
fruppel

İzinler, Şyam tarafından açıklandığı gibi 644 ve 755 olmalıdır.

Karşılaştığınız sorunlar büyük olasılıkla sunucunuzun kurulumuyla ilgilidir. Çoğu zaman bu, Apache'nin FTP hesabınızdan farklı bir kullanıcı altında çalıştığı paylaşılan ana bilgisayarlarda olur. Joomla'yı genellikle FTP kullanarak yüklediğiniz için Apache dosyanın sahibi değildir ve bu nedenle dosyayı değiştirmek için gerekli izinlere sahip değildir.

Joomla'da bu sorunu atlamanızı sağlayan bir FTP modu vardır. Joomla global yapılandırmasında etkinleştirebilirsiniz. Daha sonra, normal Apache kullanıcısı yerine FTP kullanıcısını kullanarak tüm dosya erişimini gerçekleştirir.

Ancak daha iyi bir yol, Host'unuzdan sorunu çözmesini istemektir. Özel bir kullanıcı altında çalışmak için PHP (Apache) kurabilirler, bu durumda FTP kullanıcınız olmalıdır. Sonra her şey iyi çalışır.

7
Bakual

İzinler, Şyam tarafından açıklandığı gibi 644 ve 755 olmalıdır.

Joomla'da, bahsettiğiniz tüm problemleri aşağıdaki yöntemlerle önleyebilirsiniz.

WinSCP gibi programları kullanarak sunucuya dosya aktaramamak.

  • Bu, Joomla configuration.php Gibi (444) izni nedeniyle varsayılan olarak izin vermez (güvenlik için).
  • Aynı hata için başka bir durum, bir siteyi veya klasörleri bir sunucudan diğerine aktarmanızdır.

Joomla uzantılarını, eklentilerini vb. Yükleyememe.

  • Bu, temp/log Klasörü kötü izninden kaynaklanacak. (755 gerekli)

  • Veya başka bir neden temp/log Yolunun configuration.php

Tehlikeli izinler ve sahiplik ayarları nedeniyle güvenli olmayan dosya ve klasörler.

  • Bu en önemlisi Joomla her zaman dosya ve klasör için 777 kullanmamanızı tavsiye eder this .

Umarım yardımcı olur ..

7
Jobin Jose

Evet, izinler Shyam tarafından açıklanmıştır olarak 644 ve 755 olmalıdır, ancak diğer posterler, dosyanın web sunucunuza ait olduğunu ve grubun ait olduğunuz grup olduğunu belirtmeyi unuturlar.

Örneğin, FileZilla'da izinlere benzer bir şey göreceksiniz:

Filename      Size   Filetype  Last Modified          Permissions   Owner/Group
somefile.txt  11KB   txt file  2014-04-23 3:43:00 AM      www-data myGroup 

Drwxr-xr-x izinleri 755'tir (sadece önde gelen dr'i yok sayın, böylece wxr-xr-x olur). Okuma izinleri 4, Yazma izinleri 2 ve yürütme izinleri 1 değerindedir. Bu nedenle, hepsinin 7'ye kadar eklemesini sağlayın ve bu dosyanın sahibi budur. Grubun okuma ve yürütme izinleri vardır, ancak yazmazlar, bu yüzden 5, herkesin de 5 .. izinleri 755 yapma.

754 okuma, yazma, yürütme sahipleri olacaktır. Okuma ve yürütme olan grup ve herkesin yalnızca okuma izinleri vardır.

Yukarıdaki örnekte, dosya sahibinin www-data (birçok Apache sunucusu için varsayılan web sunucusu grubu) ve Grup'un ait olduğum Grup (yöneticiler) grubu myGroup olduğunu görebilirsiniz.

İlk sayı sahiplerin izinleri, ikincisi grupların izinleri ve üçüncü sayı herkesin izinleridir. Açıkçası, web sunucusuna ihtiyaç duyduğu izinleri vermeye dikkat etmelisiniz ve kilitlenmesi gereken dosyaların herkes tarafından (üçüncü numara) yazılamayacağından veya yürütülemediğinden emin olmalısınız. Sayıların anlamı aşağıdadır:

Web sunucusunun dosyalara sahip olduğunu varsayarsak, yöneticiniz gruptadır ve elbette herkes üçüncü numaradır.

644: İzinleri 644 olarak ayarlanmış dosyalar herkes tarafından okunabilir ve yalnızca dosya/klasör sahibi tarafından yazılabilir.

755: 755'e ayarlanmış izinlere sahip dosyalar herkes tarafından okunabilir ve yürütülebilir, ancak yalnızca dosya/klasör sahibi tarafından yazılabilir.

777: 777'ye ayarlanmış izinlere sahip dosyalar herkes tarafından okunabilir, yazılabilir ve yürütülebilir. Bu izin kümesini, güvenlik nedenleriyle, kesinlikle gerekli olmadıkça ve geçici olarak web sunucunuzda kullanmayın. Özellikle bir dizin bu izinlere sahipse, gerçekleşmesini bekleyen bir felaket .. herkesin dosya yükleyip yürütebileceği anlamına gelir.

İşte Joomla! 'Yı kurmak için Linux komutları. komut satırından önerilen izinler. Önerilen Joomla Dosyası İzinleri

Set ownership:   Sudo chown -R www-data:myName /path/to/your/domain.com
Set Directories: Sudo find /path/to/your/domain.com -type d -exec chmod 755 {} \;
Set files :      Sudo find /path/to/your/domain.com -type f -exec chmod 644 {} \;

NOT - birçok kişi bu komutları yol olmadan gösterecektir, ancak HER ZAMAN tam yolu kullanmayı tercih ederim, çünkü eğer dizinleri kök Joomla! kurulum dizinini çalıştırın ve onları yol olmadan çalıştırın, en üst dizindeki her dosya ve dizin için izinleri değiştirdiniz ve büyük bir karmaşa yarattınız.

Bu komutları çalıştırdıktan sonra, daha fazla izin gerektiren tüm dizinler için izinleri düzeltmeniz gerekir ... örneğin ... resim yükleyen kullanıcılar vb.

SADECE JOOMLA'YI KULLANIRSANIZ! ve sunucuya yönetici veya FTP erişiminiz yoksa, MÜLKİYETİ VE ÜZERİNDEKİ İZİNLERİ KULLANIN.

BİR acemi iseniz BURAYA DUR .. Aşağıda sadece izinlerin ve mülkiyetin gerçekten ne yaptığını anlayan insanlar içindir.

Ancak, çoğu zaman FileZilla ve Terminal oturumu komut satırını kullanmaktan hoşlandığım için sahiplik ve izinleri çok kullanışlı bulmuyorum ve el ile çok fazla dosya yüklüyorum. Ancak hiçbir dosyanın üzerine yazamıyorum çünkü dosyalara sahip değilim ve yazma iznim yok. FileZilla web sunucusu hesabı altında oturum açabilir, AMA ... FileZilla hesabım altında oturum açmak istiyorum, bu yüzden sadece web sunucusunun erişebildiği dosyaları değil, diğer dizinlere de göz atabilirsiniz ... SO ... Sahiplik ve izinlerini değiştirmek için:

Filename      Size   Filetype  Last Modified          Permissions   Owner/Group
somefile.txt  11KB   txt file  2014-04-23 3:43:00 AM  drwxr-xr-x    myName www-data

Kendimi sahip yapıyorum ve web sunucusunu Gruba koydum ... ve dizinlerin izinlerini 775'e ve dosyalar için 664'e değiştiriyorum. Hayatımı çok daha kolaylaştırıyor ... ama bunu tavsiye etmiyorum herkes.

Benim yolumla yaparsanız, komutlar şunlardır:

 Set ownership:   Sudo chown -R myName:www-data /path/to/your/domain.com
 Set Directories: Sudo find /path/to/your/domain.com -type d -exec chmod 775 {} \;
 Set files :      Sudo find /path/to/your/domain.com -type f -exec chmod 664 {} \;  
5
bgies

Diğer cevaplar ne yapılması gerektiği konusunda iyi bir açıklama sağlar, sadece bir bileşeni yüklediyseniz ve ftp ile dosyalara erişemiyorsanız, izinleri düzeltmek için bir komut dosyası eklemek istiyorum.

Bu durumda bu dosyayı fix.php FTP sunucusuna gidin ve tarayıcıda açın: http://example.com/fix.php

<?php
file_fix_directory(dirname(__FILE__));

function file_fix_directory($dir, $nomask = array('.', '..')) {
  if (is_dir($dir)) {
     // Try to make each directory world writable.
     if (@chmod($dir, 0777)) {
       echo "<p>Made writable: " . $dir . "</p>";
     }
  }
  if (is_dir($dir) && $handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
      if (!in_array($file, $nomask) && $file[0] != '.') {
        if (is_dir("$dir/$file")) {
          // Recurse into subdirectories
          file_fix_directory("$dir/$file", $nomask);
        }
        else {
          $filename = "$dir/$file";
            // Try to make each file world writable.
            if (@chmod($filename, 0666)) {
              echo "<p>Made writable: " . $filename . "</p>";
            }
        }
      }
    }

    closedir($handle);
  }

}

Bu komut dosyası tüm izinleri 666 ve tüm direktörlerin 777'ye ayarlar. Yazılabilir dünya not paylaşılan bir Ana Bilgisayar için en iyi izin kümesidir ancak dosyalarınıza tekrar erişebilir ve daha sonra bu dosyayı ayarlayabilirsiniz. FTP ile doğru değerlere.

4
Harald Leithner

Partiye geç. Buraya ne klasörlerin joomla için yazılabilir olması gerektiği hakkında kesin bir rehber için diğer yerleri arıyorum geldi.

Üzgünüm millet kötü haberlerin habercisi oldu.

Tüm dizinler için 755 ve tüm klasörler için 644 izinlerini kullanma tavsiyesi en azından sorumsuzdur.

Tüm klasör ve dosyalarınızın sahibini yazılabilir yapmak, web sunucusu olmadığı sürece iyidir (Apache ve ark.).

Bunun yaygın olarak önerilen bir uygulama olduğunu biliyorum, ancak bunun iyi bir uygulama olmadığından emin olabilirim. Klasörlere yazma yeteneği vermek istediğiniz son yazılım parçası web sunucusunun kendisidir. Bilgisayar korsanları tarafından henüz yamalanmamış (hatta bulunmamış) istismardan yararlanmak için kullanılan web sunucusu.

.Htaccess'in Kevin'inizi kurtaracağını mı düşünüyorsunuz? Web sunucusunun yazma erişimine izin verdiğiniz için unutun, sevgili hacker arkadaşlarımız istedikleri izinleri vererek kendi .htaccess dosyalarını oluşturabilir! Umm bilmiyorum Umm sunucu tarafından çalıştırılabilir .jpg dosyaları olun. Ve .php uygulamasına karşı korumanın A'nızı kapsayacağını düşündünüz.

Ancak, yalnızca yazma erişimi gerektiren klasörlerin buna sahip olduğundan emin olun. 755 ve 644 aşağıdaki klasörler için.

public_html/images
public_html/cache
public_html/tmp

Ve tüm yazılabilir klasörler (yukarıdaki gibi) için .htaccess dosyalarını AllowOveride none ile kapattığınızdan emin olun.

Bu kontrol edemez bir yapılandırma öğesi olarak paylaşılan barındırma olanlar için iyi şanslar.

.Htaccess dosyasını salt okunur hale getirmenin yardımcı olacağını düşünmeyin. Bilgisayar korsanları arkadaşlarımız yeni bir klasör oluşturabilirlerse (yapabilirler) kendi .htaccess dosyalarını oluşturabilirler.

O kutsal olan herkes için paylaşılan barındırma çalışanlar için lütfen güvenlik hakkında bir ipucu alın.

Eğer güvenliği anlamıyorsanız, geri kalanımız için zorlaştırdığınız hosting işinden çıkın.

Şimdi yazma erişimine ihtiyaç duyan klasörlerdeki kesin kılavuzu aramaya geri dönelim ...

1
DeveloperChris