TinwëlintMedlem sedan maj 2004478 inlägg
Finns det något man kan göra när man ska köra move_uploaded_file() i safemode om användaren som kör skriptet inte äger katalogen?
Jag håller på och försöker installera Singapore (http://singapore.sourceforge.net). Men när jag ska ladda upp bilder får jag det här felmeddelandet:
Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 21 is not allowed to access /home/kunder/XXXX/xxxxx.se/album/galleries/Akvareller owned by uid 81 in /home/kunder/XXXX/xxxxx.se/album/includes/admin.class.php on line 746
ID 81 är serverägaren.
21 är användaren.
Katalogerna för gallerierna är skapade av skriptet och ägs därför av 81.
Om jag istället skapar katalogerna med mitt ftp-program blir ju ägaren 21. Då fungerar det faktiskt att ladda upp.
Men finns det någon annan lösning så att jag om jag kör skriptet som 21 kan ladda upp till katalogerna som ägs av 81? Kan man chmodda katalogerna så att det går?
Annars kan jag ju klara mig med att skapa katalogerna med ftp.
r/ lite klantigt skrivet
K@llenMedlem sedan mars 20032 654 inlägg
Du måste ha skrivrättigheter på uploadkatalogen.
<?php
chmod("/upload/", 0777);
?>
TinwëlintMedlem sedan maj 2004478 inlägg
Jo, det var det jag tänkte också. Det enda jag behöver göra är egentligen att ändra på skriptet så att rättigheterna på katalogerna när de skapas blir 0777.
Innebär 0777 någon risk? Jag har ofta funderat på det. Att "Public" tillåts skriva. Det kan de väl ändå bara göra genom ett skript som körs på servern och det har man förhoppningsvis kontroll över.
Jag läste någonstans också att andra användare på ett delat webbhotell kunde komma åt och skriva i såna kataloger.
K@llenMedlem sedan mars 20032 654 inlägg
Att andra användare kommer åt dina filer på servern är ett känt problem på dåligt konfiguerade webbhotell. Det har att göra med att PHP-scripten körs som nobody. En person med lite PHP-kunskap kan enkelt komma åt dina filer från ett annat konto. safe_mode försvårar lite.
Höga rättigheter är alltid en risk. I detta fallet gäller det bara en katalog. Man har inte så många andra alternativ. Tyvärr.
MatteMedlem sedan aug. 20002 970 inlägg
Du kan inte under safe_mode skriva till en katalog du skapat med mkdir().
Du måste använda FTP-funktionerna för att skapa katalogen.
Ett exempel: http://www.phpportalen.net/viewtopic.php?p=204968#204968
Det kräver att ditt webbhotell har stöd för FTP-funktionerna i konfigurationen.
TinwëlintMedlem sedan maj 2004478 inlägg
Verkar intressant. Kanske ska prova det. (Varför inte göra rättigheterna till ett argument för funktionen förresten? Kanske gör det om jag ska använda det.)
Varför fungerar mkdir() överhuvudtaget under safe_mode då? Man kanske har nytta av den på något sätt i och för sig.
FTP-funktionerna var aktiverade på hotellet det gäller. Gate9 verkar ju ha varenda tilläggsbibliotek till php aktiverat :)
TinwëlintMedlem sedan maj 2004478 inlägg
Måste säga att det fungerade bra. Hackade visserligen upp det vackra klassbygget en hel del men det gör inte så mycket i det här fallet. Tack Matte.
r: Ordnade upp klassbygget lite grann genom att lägga lösenord, användarnamn, server, och chmodvärde i de externa ini-filer där de borde ligga.