kuppe
Hallo,... bin neu hier und hoffe es gibt rat von euch.
Zum Problem:
Ich bin auf ein Problem gestosen wobei mein Privater Hoster auch keinen Rat mehr hat, es handelt sich dabei um eine Falsche CHMOD / Besitzer vergabe des Servers.
Hier die Praxis:
Ich bekomme falsche CHMOD Rechte / Besitzerrechte sobald eine Datei per script upload getätigt wird. Die Dateien liegen zwar nach dem Upload auf dem Server haben haber stark eingeschränkte Rechte oder haben sogar einen CHMOD von 000. Ich kann diese auch über meinen FTP Zugang nicht ändern da die Dateien nicht mehr mir gehören sondern einem "anderen" User. Die einzige möglichkeit die mir am ende bleibt was sehr ulkig ist die Datei auf dem Server zu löschen (ja es geht).
Der Hoster nutzt das Kunden Interface von Confixx.
Der Sever des Hosters ist SUSE Linux 9.2
---------------------------------------------------------------------------
--------
Meine Vermutung war safe mode on, weshalb da wir das CMS Mambo nutzen
dies ein oft diskutiertes Problem ist. Doch das safe mode Problem kann ich ausschliesen
da dies auf off steht.
Frage:
Wo könnte da das Problem sein? Nochmal als hinweis die Rechte werden nur falsch gesetzt sobald ein Upload durch ein Script getatigt wird.
Wo muss ich suchen?
---------------------------------------------------------------------------
--------
Danke schonmal im vorraus für mögliche Problemlösungen,... spart mir bitte das wort google
docker
Also, ich gehe davon aus, das du die Files via PHP hochlädst.
Wenn nicht, einfach nochmal antworten.
Du kannst mal in der PHP.ini nachsehen (meist /etc/php.ini) ob dort etwas steht, welche Rechte ne File bekommen soll, die hochgeladen wird. Ich bin mir nicht sicher, obe s dort einzustellen geht.
Ansonsten: schonmal über nen Wechsel nachgedacht ? Gibt besseres als Confixx (wobei Confixx das schönste design hat)
F4n4T!C
Welcher Version von Confixx?
danielhhrulez
poste mal den php script den til wo er hochläd, evt ist dort ein fehler, noral erstellt der apache mit php die datein mit den rechten 644 und wwwrun:www
kuppe
Nun was für eine Version die Oberfläche hat weis ich nicht da ich nur Mieter bin doch mein Hoster ist ein günstiger Privat Hoster.
Auf diesem Server werden mehrer Hompages gehostet.
| Zitat: |
| noral erstellt der apache mit php die datein mit den rechten 644 und wwwrun:www |
Dies kommt dem schon ganz nahe nach upload gehören die Files wwwrun:www doch sollten sie uns nach Upload gehören (als Bsp. www66:www) mit den Rechten 644 doch leider ist das nicht so.
Wo wird genau das festgelegt? Apache Config, PHP.ini ? Ich finde diese Configuration nicht.
Durch dieses Problem habe ich haufenweise Problem im CMS Mambo, das fängt schon an wenn ich Komponenten installieren will.
Brauch dringends Rat, vielen dank im vorraus für eure Hilfe !!
danielhhrulez
im upload script einfach ein chmod befehl einbauen, das die datien mindest 666 bekommen damit du die datei danna uch löschen und ändern darfst oder nen chown dann gehören datei dir. ist also eher nen script fehler
Exi
| Zitat: |
Original von danielhhrulez
im upload script einfach ein chmod befehl einbauen, das die datien mindest 666 bekommen damit du die datei danna uch löschen und ändern darfst oder nen chown dann gehören datei dir. ist also eher nen script fehler |
Hi,
Ich habe genau das selbe problem wie
kuppe. Sollte er bereits eine Lösung gefunden haben (der Thread ist ja schon etwas älter), poste diese Bitte

. Ich benutze die neuste Confixxversion (hab sie gestern geupdatet, da ich das problem darin vermutete). Mein Betriebssystem ist ebenfalls Linux 9.2.
Zu meinen Script: (gleich mal vorweg: vor der Formatierung ging es. Allerdings unter Visas).Im Anhang ist ein Bild meines Webftp's. Der Ordner, welcher per Script erstellt wurde, hat logischerweise wwwrun als Besitzer. Anscheinend will der PHP Upload das Bild allerdings als web1 verschieben. Dadurch, dass der Ordner von wwwrun angelegt wurde darf das Bild dahin nicht verschoben werden (Interpretiere ich jetzt mal so). Dabei tritt Folgender Fehler auf:
| Zitat: |
| Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 636 is not allowed to access /srv/www/htdocs/web1/html/www/_pictures/user/1 owned by uid 30 in /srv/www/htdocs/web1/html/www/_class/classPictures.php on line 80 |
Um den Verdacht eines Programmierfehlers auszuschließen, hier der wichtigste Teil meiner Klasse. (Bitte beachtet, dass die Fehlerausgabe normalerweise Multi Language fähig ist. Also bitte keine Kommentare zu Deutsch

)
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
|
function Upload() {
$typ = $_FILES[$this->TextBoxName]['type'];
$size = $_FILES[$this->TextBoxName]['size'];
$name = $_FILES[$this->TextBoxName]['name'];
$tmpname = $_FILES[$this->TextBoxName]['tmp_name'];
$imgsize = getimagesize($tmpname);
if($imgsize[0] == $this->PicWidth && $imgsize[1] == $this->PicHeight) {
if(eregi($this->PicExtension, $typ)) {
if($size < $this->PicSize){
if($this->CreateDirectory()){
if($this->Delete()){
/*
if(is_uploaded_file($tmpname)) {
echo 'is uploaded file';
} else {
echo 'is <b>not</b> uploaded file';
}
*/
if(move_uploaded_file($tmpname, $this->PicPath)){
return "Bild wurde hochgeladen.";
} else {
return "Bild nicht hochgeladen.";
}
} else {
return "Altes Bild konnte nicht gelöscht werden";
}
} else {
return "Ordner konnte nicht angelegt werden!";
}
} else {
return "Die Datei ".$name." ist ".($size - $this->PicSize)." KB zu groß!";
}
} else {
return "Falsches Dateiformat...<br>Nur .gif und .jpeg";
}
} else {
return "Größe ungültig. ".$this->PicWidth."x".$this->PicHeight." (Breite x Höhe)";
}
}
function Delete(){
if(file_exists($bildpath)) {
if(!@unlink($bildpath)) {
return false;
}
}
return true;
}
function CreateDirectory() {
if(!file_exists($this->PicDirec)) {
if(!mkdir($this->PicDirec, 0777)) {
return false;
}
}
return true;
} |
|
So Long
Exi
docker
Das ganze hängt mit dem Safe Mode zusammen.
Also, wie du sicherlich weißt gibt es unter Linux Gruppen. Dioese Gruppen haben verschiedene rechte.
Unter Safe Mode ist es so, das eine Gruppe nicht Daten ändern kann, die einer Gruppe angehören, die über der einen Gruppe stehen.
Safe Mode off ist im ganzen Dir nicht angebracht. Du kannst es aber für einzelne Ordner deaktiveren. Dann sollte es gehen.
Exi
| Zitat: |
Original von docker
Du kannst es aber für einzelne Ordner deaktiveren. Dann sollte es gehen. |
Wie mach ich das?
Also, wenn ich die Ordner per Script anlege.
Danke
Exi
hostar-isp
Das eigentliche Problem ist, dass z.B. der Apache-webserver unter dem Namen 'apache' läuft und confixx für jeden kunden einen eigenen Systemuser anlegt z.B. web01. Wenn nun per script hochgeladen wird, speichert der apache diese Datei unter seiner Berechtigung und nicht als web01.
Es gibt aber ne Lösung.
Entweder im php script den user der datei wechseln per chown.
oder
Was ich aber noch am sinnvollsten finde ist, wenn man das Upload script als CGI läufen lässt. Hat dann der Provider suEXEC laufen, dann wird automatisch die Datei unter der Berechtigung von web01 gepsiechert, weil das ganze Script als web01 und nicht als apache aufgeführt wird.
Gruß,
Thomas
docker
Du kannst auch nen Vrown erstellen, der alle X Minuten die Rechte setzt.
| code: |
1:
2:
3:
4:
5:
|
<Directory /srv/www/htdocs/ordner/l>
php_admin_flag safe_mode Off
</Directory>
|
|