Dateiberechtigungen ändern (Nur lesen)

Gepostet am 04 April 2012 in: php

So manche Software möchte, das man die Rechte der config-Datei auf 0444 (nur lesen) setzt. Wenn dem nicht so ist geben diese oft eine Fehlermeldung aus. Um diese Fehlermeldung weg zu bekommen, muss man die Rechte der Datei ändern. Der erste Gedanke ist, einen FTP-Client wie Filezilla zu verwenden, um diese zu ändern. Doch leider unterbindet es der bei lima-city eingesetzte FTP-Server (siehe Unten), das man niedrigere Rechte als Lesen/Schreiben für den Besitzer, lesen für alle anderen (0644) setzt. Somit muss man sich einen anderen Weg suchen.

PHP hat die Funktion chmod, mit welcher man die Dateiberechtigungen ändern kann. Dabei muss man dieser Funktion lediglich den Dateinamen und die Berechtigungen übergeben:

<?php
if( chmod("cfg.php",0444) ) {
    echo "Done";
}else{
    echo "Error";
}
?>

In diesem Fall ist cfg.php die Config Datei, deren Rechte geändert werden soll. Die Rechte, hier 0444 geben die gewünschten Berechtigungen im Unix-Format an.

Bei z.B. osCommerce ist die Konfigurationsdatei im Ordner includes, welchen man nicht im Browser aufrufen kann. In so einem Fall die PHP-Datei einfach im selben Verzeichnis wie die index.php anlegen und den Pfad, im Bsp. cfg.php anpassen. Im Falle von osCommerce also includes/cfg.php

Der Customer-Proof, welcher die Änderung der Rechte auf 0444 verhindert:

# Be 'customer proof' : workaround against common customer mistakes like
# 'chmod 0 public_html', that are valid, but that could cause ignorant
# customers to lock their files, and then keep your technical support busy
# with silly issues. If you're sure all your users have some basic Unix
# knowledge, this feature is useless. If you're a hosting service, enable it.
CustomerProof yes