Ich habe folgende Funktion gebaut, um bei kritischen Operationen mit Dateischreiboperationen auf dem Laufenden zu sein, wenn sich Schreibrechte geändert haben und ein Schreiben in die Datei nicht möglich ist. Leider können der Fileowner in den meisten Fällen nur vom Superuser gesetzt werden, deswegen verschickt das Script eine Mail im Fehlerfall.
Dieses Problem trifft dann bei mir auf, wenn meine IDE Netbeans automatisch Dateien hochlädt, die ich garnicht bearbeitet hatte (Remote Synchronisation), dann wird die Datei überschrieben und der Fileowner neu gesetzt.
function checkFileWritable($file)
{
if(!file_exists($file))
{
file_put_contents($file, "");
}
if(!chmod($file, 0644))
{
$fileowner = fileowner($file);
echo "counld not change File Permissions: $file, File Owner is: $fileowner";
if(!chown($file, ftpUserID))
{
echo "counld not change File owner: $file ";
mail(mailadresse, "Schreibeprobleme","File: $file, File Owner is: $fileowner");
}
}
}