• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Via PHP hochgeladene Fotos bekommen die Dateiberechtigung 644

leicht-debil

Neu angemeldet

Registriert
13 Aug. 2013
Beiträge
57
Ort
Kassel
Servus Leute!

Folgendes Problem:
Ich lade Fotos via PHP (HTML-Formular, enctype=multipart/form-data) auf meinen Webserver. Dem Zielverzeichnis habe ich zuvor die Berechtigungs-Attribute "777" eingeräumt.
Der Upload und das Speichern der Fotos klappt auch problemlos, allerdings kann ich die Dateien nachfolgend nicht mit "unlink" löschen, da die Dateien mit der Attribute "644" im Zielverzeichnis abgelegt werden. Das ganze ist mir erst aufgefallen, nachdem folgendes kleine Skript dauerhaft fehl schlug:

[src=php]if(file_exists("zielverzeichnis/datei.jpg")) {
echo "Datei existiert!";
// unlink sobald das Rechteproblem gelöst ist
}[/src]

Auf "php.net" finde ich zu file_exists folgenden Hinweis:
Warnung
Diese Funktion gibt FALSE für Dateien zurück, die wegen safe mode Einschränkungen nicht zugänglich sind

Der "Savemode" steht auf meinem Webserver auf "off", was also konkret ist mit der Warnung gemeint?
Ich tippe mal auf serverseitig falsch vergebene User-Rechte, weiß aber nicht so Recht, was ich konkret überprüfen soll.
Wenn es hilft: Der Webserver läuft unter Apache 2.2.22, die installierte PHP-Version ist 5.4.36.
 

virtus

Gehasst

Registriert
24 Apr. 2015
Beiträge
1.689
Ort
AUF DEM MOND
777? Bist du dir sicher, dass du die Dateien ausführen können möchtest?

7 read, write and execute
6 read and write
5 read and execute
4 read only
3 write and execute
2 write only
1 execute only
0 none

Die Dateien in dem Verzeichnis und insbesondere das Verzeichnis brauchen sicherlich nicht das execute-bit!
644 ist definitiv die korrekte Berechtigungsrichtlinie, ggf. sogar 640 oder sogar 600.

Bist du dir sicher, dass die Dateien auch dem Nutzer gehören, der PHP ausführt? (z.B. www-data)

Lade mal bitte 2 Dateien hoch:
1. Die erste Datei per FTP test_ftp.jpg
2. Die zweite Datei via PHP test_php.jpg

Anschließend führst du im Verzeichnis folgendes aus:
[src=bash]ls -lA[/src]

Außerdem könntest du eine PHP Datei mit folgendem Inhalt hochladen:
[src=php]<?php phpinfo(); ?>[/src]
und einen Screenshot des Outputs posten, wenn du die Datei aufrufst.

In einigen meiner Meinung nach kaputten Konfigurationen laufen Webserver/PHP und FTP unter unterschiedlichen Nutzern.
Ggf. noch mit interessanten Manipulationen der Berechtigung von Dateien, je nachdem von welchem Nutzer sie erstellt wurden.

Vielleicht hilft dir das:
Es erfordert jedoch shell_exec und das steht nicht immer zur Verfügung.
[src=php]<?php
/**
* @output string username
*/
function WHOAMI(){
return shell_exec("whoami");
}

/**
* takes ownership of any file
* @output true on success
* false otherwise
*/
function takeOwn($file){
$me = WHOAMI();
return chown($file, $me);
}
?>[/src]
 

Shodan

runs on biochips

Registriert
14 Juli 2013
Beiträge
661
Ort
Citadel Station
Wenn du auf den Server schaust und die Datei ist da, aber PHPs "file_exists" gibt dir false aus, dann ist wahrscheinlich der Pfad falsch.
 

electric.larry

\''; DROP TABLE user; --
Teammitglied

Registriert
13 Dez. 2014
Beiträge
4.549
Ort
Raum 43
Hast du das mit SetGID probiert?

* Verzeichnis Group auf Apache User ändern: chown deinuser:www-data verzeichnisname
* Write Permission und SetGID setzen: chmod g+rws verzeichnisname

Danach sollten alle Files im Verzeichnis als Gruppe www-data zugewiesen bekommen und rw für diese erlauben.
 
Oben