Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

fopen funktioniert nicht

Diskussion: fopen funktioniert nicht im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Ich habe ein script geschrieben um das pw in der .htpasswd datei zu ändern. soweit sio gut, jetzt versuchte ...

Antwort
Alt 29.07.08, 11:54   #1 (permalink)
 
Registriert seit: 05.04.05
jami Leistung: Facit NTK
Likes: 0
Standard fopen funktioniert nicht

Anzeige

Ich habe ein script geschrieben um das pw in der .htpasswd datei zu ändern. soweit sio gut, jetzt versuchte ich das script auf einem anderen server auszuführen und es funktioniert nicht mehr.
PHP.net meint vllt ist open_basedir aktiviert whatever, wie kann ich das feststellen?

ich habe nur normalen ftp zugang - kann man das trotzdem irgendwie abfragen?

jami ist offline   Mit Zitat antworten
Alt 29.07.08, 11:57   #2 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

wird denn irgend ein Fehler ausgegeben? den solltest du evtl. mal posten....
und ja, es ist sehr gut möglich, dass die Funktion vom Hoster deaktiviert wurde...
beavisbee ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 29.07.08, 12:03   #3 (permalink)
Themenstarter
 
Registriert seit: 05.04.05
jami Leistung: Facit NTK
Likes: 0
Standard

bei "return false" wird nichts ausgegeben...
jami ist offline   Mit Zitat antworten
Alt 29.07.08, 12:07   #4 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

werden bei dem Hoster überhaupt Fehler ausgegeben?

mach mal folgendes:
PHP-Code:
error_reporting(E_ALL); //sorgt dafür, dass alle Fehler auch wirklich ausgegeben werden...
$file=fopen("filename.bla","r");
while(!
feof($file))
{
  echo 
fgets($file,4096);
}
fclose($file); 
beavisbee ist offline   Mit Zitat antworten
Alt 29.07.08, 12:14   #5 (permalink)
Themenstarter
 
Registriert seit: 05.04.05
jami Leistung: Facit NTK
Likes: 0
Standard

failed to open stream: Permission denied
dann gibt er unendlich lang aus das fget und feof nicht geht weil kein valid stream ressource...
jami ist offline   Mit Zitat antworten
Alt 29.07.08, 12:34   #6 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

arrgh.. sry, vom Code her sollte es ja erstma ein Lese-Test werden (hab aus dem "w" mal schnell ein "r" gemacht...)

probier mal, ob du überhaupt lesend Zugriff bekommst...
(mit nun berichtigtem oben stehendem Script)


und dann die nächste Frage:
Wer ist Eigentümer der zu öffnenden Datei?
Wer ist Eigentümer des Scriptes?
Unter welchem User wird das Script ausgeführt?

hab mal eben ein Script geschrieben, welches die Fragen beantwortet...
PHP-Code:

  error_reporting
(E_ALL);
  
$script=basename($_SERVER["PHP_SELF"]); 
  
$other_file="test.php";
function 
permissions_string($file)
{
    
$perms fileperms($file);

    if ((
$perms 0xC000) == 0xC000) {
        
// Socket
        
$info 's';
    } elseif ((
$perms 0xA000) == 0xA000) {
        
// Symbolic Link
        
$info 'l';
    } elseif ((
$perms 0x8000) == 0x8000) {
        
// Regular
        
$info '-';
    } elseif ((
$perms 0x6000) == 0x6000) {
        
// Block special
        
$info 'b';
    } elseif ((
$perms 0x4000) == 0x4000) {
        
// Directory
        
$info 'd';
    } elseif ((
$perms 0x2000) == 0x2000) {
        
// Character special
        
$info 'c';
    } elseif ((
$perms 0x1000) == 0x1000) {
        
// FIFO pipe
        
$info 'p';
    } else {
        
// Unknown
        
$info 'u';
    }

    
// Owner
    
$info .= (($perms 0x0100) ? 'r' '-');
    
$info .= (($perms 0x0080) ? 'w' '-');
    
$info .= (($perms 0x0040) ?
                ((
$perms 0x0800) ? 's' 'x' ) :
                ((
$perms 0x0800) ? 'S' '-'));

    
// Group
    
$info .= (($perms 0x0020) ? 'r' '-');
    
$info .= (($perms 0x0010) ? 'w' '-');
    
$info .= (($perms 0x0008) ?
                ((
$perms 0x0400) ? 's' 'x' ) :
                ((
$perms 0x0400) ? 'S' '-'));

    
// World
    
$info .= (($perms 0x0004) ? 'r' '-');
    
$info .= (($perms 0x0002) ? 'w' '-');
    
$info .= (($perms 0x0001) ?
                ((
$perms 0x0200) ? 't' 'x' ) :
                ((
$perms 0x0200) ? 'T' '-'));
return 
$info;
}

echo 
"<h1>script info</h1>";
$file=$script;
echo 
"<pre>
file        : "
.$file."
owner-ID    : "
.fileowner($file)." - ";
$user=posix_getpwuid(fileowner($file));
echo 
$user["name"]."
group-ID    : "
.filegroup($file)." - ";
$group=posix_getgrgid(filegroup($file));
echo 
$group["name"]."
permission    : "
.permissions_string($file)."
executed by     : "
shell_exec("whoami")."</pre>";

echo 
"<h1>other file</h1>";
$file=$other_file;
echo 
"<pre>
file        : "
.$file."
owner-ID    : "
.fileowner($file)." - ";
$user=posix_getpwuid(fileowner($file));
echo 
$user["name"]."
group-ID    : "
.filegroup($file)." - ";
$group=posix_getgrgid(filegroup($file));
echo 
$group["name"]."
permission    : "
.permissions_string($file)."</pre>"
statt dem "test.php" bei $other_file setzt du deine .htaccess ein, die du bearbeiten willst...
beavisbee ist offline   Mit Zitat antworten
Alt 29.07.08, 13:02   #7 (permalink)
Themenstarter
 
Registriert seit: 05.04.05
jami Leistung: Facit NTK
Likes: 0
Standard

also wenn ich das erstere mit "read" ausführe gibt er genau nichts aus. leere seite.

beim zweiten script kommt das raus:

script info

file : tester.php
owner-ID : 2487 - ap000026
group-ID : 1984 - ap000026
permission : -rw-r--r--
executed by :

other file

file : .htpasswd
owner-ID : 2487 - ap000026
group-ID : 1984 - ap000026
permission : -rw-r--r--

wobei ap000026 der login für ftp ist

heißt das, dass ich nur die Lese/Schreib Zugriff ändern muss?
jami ist offline   Mit Zitat antworten
Alt 29.07.08, 13:37   #8 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

Zitat:
Original von jami
also wenn ich das erstere mit "read" ausführe gibt er genau nichts aus. leere seite.
steht denn schon was in der Datei drin?
Lesen können sollte er's ja laut den Datei-Rechten, die das Script zurück gibt...

Zitat:
Original von jami
script info

file : tester.php
owner-ID : 2487 - ap000026
group-ID : 1984 - ap000026
permission : -rw-r--r--
executed by :

other file

file : .htpasswd
owner-ID : 2487 - ap000026
group-ID : 1984 - ap000026
permission : -rw-r--r--


heißt das, dass ich nur die Lese/Schreib Zugriff ändern muss?
wahrscheinlich schon.

leider wurde der shell_exec()-Befehl nicht ausgeführt... :-( (vieleicht von Sicherheitseinstellungen des Servers geblockt....)
Aber ich gehe einfach mal davon aus, dass die Scripte unter dem User www-data ausgeführt werden.

Du als User ap000026 hast als einziges das Recht zu schreiben, jedoch ausgeführt wird das Script von einem anderen User --> da musst du wohl mal der .htaccess-Datei weitere Zugriffsrechte geben - also chmod 666... auch wenn mir sowas immer Bauchschmerzen bereitet, wenn man jmd. anderem als dem Besitzer Schreibrechte gibt, aber da es die Server-Konfiguration wahrscheinlich nicht anders erlaubt, ist das die einzige Möglichkeit, die mir einfällt...

ansonsten könntest du höchstens die Datei mal mittels eines PHP-Scripts erzeugen, auf dass der Datei-Eigentümer dann hoffentlich ebenfalls der ist, unter dem das Script ausgeführt wird...
beavisbee ist offline   Mit Zitat antworten
Alt 29.07.08, 14:08   #9 (permalink)
Themenstarter
 
Registriert seit: 05.04.05
jami Leistung: Facit NTK
Likes: 0
Standard

read geht, datei war leer.

Mit 666 funktionierts! Ist zwar sicher nicht die sicherste Methode, aber es funktioniert dafür...

Herzlichen Dank!
jami ist offline   Mit Zitat antworten
Alt 29.07.08, 15:28   #10 (permalink)
 
Registriert seit: 20.07.08
kcirta Leistung: Facit NTK
kcirta eine Nachricht über ICQ schicken
Likes: 0
Standard

ne andere möglichkeit wäre ne ftp verbindung über php quasi aufzubauen und dadrüber die datei zu verändern. würde man sich das verändern der rechte sparen hat jedoch mehr aufwand.
kcirta ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » fopen funktioniert nicht
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
fopen,sql abfrage, datei erstellen mig (Web-) Design und webbasierte Sprachen 5 23.10.07 02:45
Ton funktioniert nicht! TheRealMoon Die Problemzone 2 19.12.05 20:07
PHP GD funktioniert nur schlecht bis gar nicht?! PtB (Web-) Design und webbasierte Sprachen 4 11.01.05 16:34
VPN funktioniert, LAN nicht DocMorbid Windows 5 28.11.03 01:56
PHP: fopen("","A"); mido (Web-) Design und webbasierte Sprachen 6 29.07.02 23:34


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 60 61