Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Rechte der Dateien ändern
Antwort
 
Themen-Optionen
Alt 21.02.2007, 17:06   Nach oben    #1
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
Standard Rechte der Dateien ändern

Hallo,

ich möchte meine Templates online verwalten. Dadurch brauchen sie dann Schreibrechte.

Wie kann ich den User ändern, der das Skript, das die Datei beschreibt, ausführt?
Oder die Rechte der Datei entsprechend setzten?

Meine Struktur des Servers
Code:
~root/
      admin/      #Das Skript
      templates/  #Die Templates
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.02.2007, 17:36   Nach oben    #2
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

http://de3.php.net/chown
http://de3.php.net/chmod
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.02.2007, 18:12   Nach oben    #3
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
Standard

Dieser Code funktioniert leider nicht:
PHP-Code:
if (array_key_exists('aendern'$_POST))
{
        
chmod($_SESSION['verzeichnis'].'/'.$_POST['datei'], 0777);
        
schreibeInDatei$_SESSION['verzeichnis'].'/'.$_POST['datei'], $_POST['inhalt'] );
        
chmod($_SESSION['verzeichnis'].'/'.$_POST['datei'], 0755);
        echo 
"<h2>Datei erfolgreich ge&auml;ndert</h2>";

Ist es egal wer ein Skript aufruft? Welche Userkennung trägt eine Datei die durch ein Skript erstellt wird?
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.02.2007, 18:38   Nach oben    #4
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Afaik ist das auch nicht auf jeden SharedHosting-Server aktiviert.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.02.2007, 18:54   Nach oben    #5
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard

es bleibt dir aber die Möglichkeit mittels der ftp-Funktionen die entspr. Befehle auszuführen.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.02.2007, 23:27   Nach oben    #6
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
Standard

Und wie kann ich das dann realisiren? Muss ich mich dann über FTp mit dem Server verbinden und die Rechte ändern?
Oder wie ginge das dann?
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.02.2007, 07:30   Nach oben    #7
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard

es für PHP auch ftp-Funktionen (hier) und damit kannst du dann eine ftp-Verbindung zu dem Server aufbauen und hast damit die gleichen Möglichkeiten, als wenn du das selbst mit einem ftp-tool machen würdest, weil du dich ja mit dem gleichen user anmeldest und somit auch die gleichen Rechte hast.
Dann musst du in das entspr. Verzeichnis wechseln und kannst mit ftp_chmod dann den chmod ändern.

ein paar Beispiele dazu findest du auf den Seiten von php.net, ansonsten: ausprobieren!


// edit:
ich sehe gerade, dass dir dieses Tutorials ggf. auch weiterhelfen kann:
http://www.tutorials.de/forum/php-tu...unktionen.html
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.02.2007, 15:01   Nach oben    #8
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
Standard

Danke,

hab es jetzt über FTP geschafft.
Hier mein Code falls es jemanden interessiert wie genau es geht.
PHP-Code:
##############################################################
if (array_key_exists('aendern'$_POST))
{
$fehler_schreiben 'ok';
############ FTP ##############################################
// Verbindungsaufbau
$conn_id ftp_connect($ftp_server); 

// Login mit Username und Passwort
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass); 

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) {
        echo 
"FTP Verbindung ist fehlgeschlagen!<br />\n<br />";
        echo 
"Verbindungasufbau zu $ftp_server mit Username $ftp_user_name versucht.<br />\n<br />";
        
$fehler_schreiben 'Verbinden';
        exit;
} else {
        echo 
"Verbunden zu $ftp_server mit Username $ftp_user_name<br />\n<br />";
            
// Ins Verzeichnis "$_SESSION['verzeichnis']" wechseln
            
if (ftp_chdir($conn_id$folder_page."templates/".$_SESSION['verzeichnis'])) {
                echo 
"Aktuelles Verzeichnis: " ftp_pwd($conn_id) . "<br />\n<br />";
            } else { 
                echo 
"Verzeichnis-Wechsel ist fehlgeschlagen.<br />\n<br />";
                
$fehler_schreiben 'Wechsel';
            }
            
// Zugriffsrechte von $_POST['datei'] auf 644 ändern
            
if (ftp_chmod($conn_id0777$_POST['datei']) !== false) {
                echo 
"Zugriffsrechte der Datei ".$_POST['datei']." auf 777 ge&auml;ndert<br />\n<br />";
            } else {
                echo 
"Änderung der Zugriffsrechte fehlgeschlagen<br />\n<br />";
                
$fehler_schreiben 'Rechtevergabe 1';
            }
############ FTP ##############################################
        
schreibeInDatei$_SESSION['verzeichnis'].'/'.$_POST['datei'], $_POST['inhalt'] );
############ FTP ##############################################
            // Zugriffsrechte von $_POST['datei'] auf 644 ändern
            
if (ftp_chmod($conn_id0755$_POST['datei']) !== false) {
                echo 
"Zugriffsrechte der Datei ".$_POST['datei']." auf 755 ge&auml;ndert<br />\n<br />";
            } else {
                echo 
"Änderung der Zugriffsrechte fehlgeschlagen<br />\n<br />";
                
$fehler_schreiben 'Rechtevergabe 2';
            }
            
######    Beenden der Verbindung
            
if (ftp_close($conn_id) !== false) {
                echo 
"Verbindung erfolgreich beendet<br />\n<br />";
            } else {
                echo 
"Beenden der Verbindung fehlgeschlagen<br />\n<br />";
                
$fehler_schreiben 'Trennen';
            }
############ FTP ##############################################
        
if($fehler_schreiben == 'ok') {
        echo 
"<h2>Datei erfolgreich ge&auml;ndert</h2>\n<a href=\"template_neu.php\">Weiter</a>";
        } else {
        echo 
"<h2>Datei <b><u>nicht</u></b> erfolgreich ge&auml;ndert</h2><br />\n
                Folgender Fehler ist aufgetreten:<br />\n
                $fehler_schreiben ist fehlgeschlagen."
;
    }
}

__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.02.2007, 20:13   Nach oben    #9
BIN EIN KRASSA HELD!!!111
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.184
Standard

Öhm wenn die Dateien mit PHP angelegt werde, sollte PHP auch darauf zugreifen können, ansonsten wenn es Dateien sind die quasi bei der Installation einen Systems schon vorhanden sind, sollte man ihnen beim Upload schon einen passenden CHMOD zuweisen und einen ausreichenden für die Dateien die editieren.
robo47 ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.02.2007, 11:14   Nach oben    #10
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard

was nur dann wesentlich ist, wenn der ftp-user und der user unter dem php läuft unterschiedlich ist, oder?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.02.2007, 11:35   Nach oben    #11
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Zitat:
Zitat von robo47 Beitrag anzeigen
wenn es Dateien sind die quasi bei der Installation einen Systems schon vorhanden sind, sollte man ihnen beim Upload schon einen passenden CHMOD zuweisen und einen ausreichenden für die Dateien die editieren.
Was ja, so wie ich das jetzt verstanden habe, auch durchaus über die FTP-Funktionen geregelt werden kann, oder?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2007, 13:17   Nach oben    #12
Neuer Benutzer
 
Registriert seit: 21.02.2007
Beiträge: 8
Standard

Zitat:
Zitat von robo47 Beitrag anzeigen
Öhm wenn die Dateien mit PHP angelegt werde, sollte PHP auch darauf zugreifen können, ansonsten wenn es Dateien sind die quasi bei der Installation einen Systems schon vorhanden sind, sollte man ihnen beim Upload schon einen passenden CHMOD zuweisen und einen ausreichenden für die Dateien die editieren.
Außerdem kröhnt das nicht gerade von Sicherheit, bestimmte Dateien dauerhaft schreibbar zu lassen.
SRIT ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2007, 14:23   Nach oben    #13
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard

es schließt ja nicht aus, das man nach beendeter Arbeit die Rechte wieder einschränkt.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2007, 14:58   Nach oben    #14
Neuer Benutzer
 
Registriert seit: 21.02.2007
Beiträge: 8
Standard

Zitat:
Zitat von Jann Hendrik Beitrag anzeigen
es schließt ja nicht aus, das man nach beendeter Arbeit die Rechte wieder einschränkt.
Wenn ich es per FTP mache nicht, nein. Nur wenn ich nen Template (oder auch eine andere Datei) per PHP hochlade diesem Schreibrechte, beim kopieren schon mitgebe (so wie es robo47 vorgeschlagen hat) und ich mit PHP (nicht mit FTP), die Dateirechte später nicht mehr ändern kann, find ich das schon unsicher.
SRIT ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.03.2007, 22:51   Nach oben    #15
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
Standard

ja, ich kann die Rechte nicht ändern, da FTP und der PHP User zwei verschiedene sind.

Ich müsst also die Datei mit einem FTP User erstellen, damit ich sie dann auch mit FTP ändern kann. Würde gerne mit FTP arbeiten, da es auch Benutzer gibt, dir nur per FTP auf dem Server zu gange sind.

Kann man mit FTP Dateien erstellen?
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.03.2007, 23:03   Nach oben    #16
Erfahrener Benutzer
 
Benutzerbild von Bleistift
 
Registriert seit: 31.12.2006
Ort: Zürich
Beiträge: 296
Standard

Hast du nicht die selbe Frage schon mal gestellt?
__________________
. <-- This is Punkt. Copy Punkt into your signature to help him on his way to world domination.
Bleistift ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.03.2007, 23:20   Nach oben    #17
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
Standard

Aber keine Antwort gefunden oder? Hab ich sie überlesen?
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.03.2007, 19:45   Nach oben    #18
Guy with soup
 
Registriert seit: 27.05.2006
Beiträge: 44
Standard

Dann beantworte ich sie mal
Du kannst irgendwo auf deinem Webspace eine Datei mit touch() o.ä erstellen und diese, dann mit ftp_put() an den richtigen Ort verfrachten.Dannach löscht du die erste Datei. Die neue Datei hat dann die gleich uid, gid und chmod, wie eine Datei, die du mit einem FTP-Client hochgeladen hast
Du musst halt schauen, dass das Verzeichnis, wo du die temporäre Datei erstellst die nötigen zugriffsrechte hat.
__________________
Helft mir bei der Facharbeit

Neu im Pressearchiv der BR Gartenland
-Musik - nur ein Konsumgut?
suppenmann ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.03.2007, 19:48   Nach oben    #19
Erfahrener Benutzer
 
Benutzerbild von Bleistift
 
Registriert seit: 31.12.2006
Ort: Zürich
Beiträge: 296
Standard