Schreibrechte definieren mittels htaccess ?
kungschu
- webserver
Hallo Forum.
Um auf meinem Webserver in eine .txt-Datei zu schreiben, verwende ich ein php-Script ( fwrite() ). Dies funktioniert aber nur, wenn ich (mit meinem ftp-Prog) allen Benutzern Berechtigung zum Schreiben erteile. Ansonsten erhalte ich (verständlicherweise) von fwrite() die Rückmeldung, dass das Schreiben nicht gestattet ist.
Wie lässt es sich realisieren, dass ausschließlich der Besitzer und eben besagtes Script Schreibrechte besitzen? Ist eine solche Vorgabe mit einer htaccess-Direktive möglich?
Welche Möglichkeiten gibt es?
MfG, Kungschu.
Ich grüsse den Cosmos,
Wie lässt es sich realisieren, dass ausschließlich der Besitzer und eben besagtes Script Schreibrechte besitzen?
Du musst dem User, unter dem das Script läuft, schreibrechte geben
Ist eine solche Vorgabe mit einer htaccess-Direktive möglich?
Nein.
Möge das "Self" mit euch sein
Hallo.
Wie lässt es sich realisieren, dass ausschließlich der Besitzer und eben besagtes Script Schreibrechte besitzen?
Du musst dem User, unter dem das Script läuft, schreibrechte geben
Wie kann ich das machen?
MfG, Kungschu.
Hello,
Wie kann ich das machen?
Welches Server-OS?
Hast Du Adminstrationsrechte?
Läuft der SafeMode?
Kennst Du Dich mit den wichtigsten Einstellungen in der php.ini aus?
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo.
Welches Server-OS?
Weiß ich nicht.(all-inkl.de)
Hast Du Adminstrationsrechte?
Ich habe die Rechte wohl in dem Grade, wie sie dem einfachen Privatkunden zugestanden werden. Was meinst du konkret?
Läuft der SafeMode?
Der läuft bei denen nicht.
Kennst Du Dich mit den wichtigsten Einstellungen in der php.ini aus?
Nein, keine Ahnung.
Andere Möglichkeiten gibt es nicht?
MfG, Kungschu.
Hallo kungschu.
Um auf meinem Webserver in eine .txt-Datei zu schreiben, verwende ich ein php-Script ( fwrite() ). Dies funktioniert aber nur, wenn ich (mit meinem ftp-Prog) allen Benutzern Berechtigung zum Schreiben erteile. Ansonsten erhalte ich (verständlicherweise) von fwrite() die Rückmeldung, dass das Schreiben nicht gestattet ist.
Wie lässt es sich realisieren, dass ausschließlich der Besitzer und eben besagtes Script Schreibrechte besitzen?
Da du lediglich FTP-Zugriff hast: gar nicht.
Ansonsten könntest du eine neue Gruppe anlegen, welcher du deinen Benutzer und den Benutzer des Apache-Servers hinzufügst. Damit wären dann nur Schreibrechte für Besitzer und Gruppe erforderlich.
Einen schönen Montag noch.
Gruß, Mathias
Hallo Mathias.
Ansonsten könntest du eine neue Gruppe anlegen, welcher du deinen Benutzer und den Benutzer des Apache-Servers hinzufügst. Damit wären dann nur Schreibrechte für Besitzer und Gruppe erforderlich.
Gruppe anlegen? In einer htaccess?
MfG, Kungschu.
Hallo kungschu.
Ansonsten könntest du eine neue Gruppe anlegen, welcher du deinen Benutzer und den Benutzer des Apache-Servers hinzufügst. Damit wären dann nur Schreibrechte für Besitzer und Gruppe erforderlich.
Gruppe anlegen? In einer htaccess?
Nein, z. B. per SSH-Login, was dir bei all-inkl jedoch nicht zur Verfügung steht. Wie gesagt ist dein Vorhaben also nicht erfüllbar.
Einen schönen Montag noch.
Gruß, Mathias
Hallo.
Nein, z. B. per SSH-Login, was dir bei all-inkl jedoch nicht zur Verfügung steht. Wie gesagt ist dein Vorhaben also nicht erfüllbar.
Falls wir uns missverstanden haben: Das Script liegt auf dem Server,, möchte es also nicht von meinem Rechner aus ausführen.
MfG, Kungschu.
Hallo kungschu.
Nein, z. B. per SSH-Login, was dir bei all-inkl jedoch nicht zur Verfügung steht. Wie gesagt ist dein Vorhaben also nicht erfüllbar.
Falls wir uns missverstanden haben: Das Script liegt auf dem Server,, möchte es also nicht von meinem Rechner aus ausführen.
Wir haben uns verstanden, keine Sorge.
Einen schönen Montag noch.
Gruß, Mathias
Hallo.
Ok. Das heißt, die Sicherheitslücke .txt-Datei muss ich riskieren, wenn ich durch ein auf dem Server ausgeführtes Script mittels fwrite() Daten in die Datei schreiben will.?
MfG, Kungschu.
Hallo kungschu.
Ok. Das heißt, die Sicherheitslücke .txt-Datei muss ich riskieren, wenn ich durch ein auf dem Server ausgeführtes Script mittels fwrite() Daten in die Datei schreiben will.?
Die einzig verbleibende Alternative wäre, die Datei mittels Script erzeugen zu lassen, womit sie dann dem Apache-User gehört. Natürlich hast du selbst dann keinen Schreibzugriff mehr darauf.
Einen schönen Montag noch.
Gruß, Mathias
Hello,
Hallo kungschu.
Ok. Das heißt, die Sicherheitslücke .txt-Datei muss ich riskieren, wenn ich durch ein auf dem Server ausgeführtes Script mittels fwrite() Daten in die Datei schreiben will.?
Die einzig verbleibende Alternative wäre, die Datei mittels Script erzeugen zu lassen, womit sie dann dem Apache-User gehört. Natürlich hast du selbst dann keinen Schreibzugriff mehr darauf.
... nur noch über ein Web-Interface, das er sich erstellen müsste.
Es gibt aber noch Möglichkeiten.
Es sollte erstmal folgendes kleiens Script laufen lassen :
<?php ### get_config.php ###
error_reporting(E_ALL);
$_result = array();
php_sapi_name();
$exec = exec('ls -la ../', $_result);
$_result[] = '---------------------------------';
$_result[] = "PHP-Installation: ".php_sapi_name();
echo "<pre>\n";
foreach($_result as $line)
{
echo $line."\n";
}
echo "</pre>\n";
?>
und uns das Ergebnis mitteilen.
Die Fehlermeldungen und die Angabe der Installationsart für PHP dürften am wichtigsten sein
Das Verzeichnis wird hier nur testhalber ausgegeben.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo.
Das Ergebnis:
Warning: exec() has been disabled for security reasons in /***/***/***/test.php on line 4
---------------------------------
PHP-Installation: apache
MfG, Kungschu.
Hello,
Das Ergebnis:
Warning: exec() has been disabled for security reasons in /***/***/***/test.php on line 4
PHP-Installation: apache
So wie ich das erwartet habe.
Dein PHP läuft also als Modul in einem Apachen.
Die "bösen" Fähigkeiten von PHP sind vermutlich alle ausgeschaltet.
Exec() und System() und ihre Brüder sind die wichtigsten.
Da Du nun weißt, wie man die Verfügbarkeit von Funktionen _testet_ (nicht nur abfragt), kannst Du das Gleiche nochmals mit den POSIX-Funktionen machen.
Das Interessante daran ist, den Usernamen des Apachen zu erfahren,
die Gruppen herauszufinden, zu denen der Apache gehört, die Gruppen herauszufinden, zu denen Du (Dein FTP-Zugang) gehörst.
Mittels chgrp() könntest Du nämlich der Datei eine Gruppe zuweisen, zu der Der Apache gehört und zu der auch Du gehörst, wenn es die gibt. Das wäre eine Lösung für Dich, den Zugriff für beide zu ermöglichen.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo.
Das Interessante daran ist, den Usernamen des Apachen zu erfahren,
die Gruppen herauszufinden, zu denen der Apache gehört, die Gruppen herauszufinden, zu denen Du (Dein FTP-Zugang) gehörst.
Und das mache ich, indem ich alle POSIX-Funktionen Abfrage?
Also immer in diese Zeile die ensprechenden Funktionen einfüge:
$exec = exec('ls -la ../', $_result);
Wie ich gesehen habe, gibt es einige POSIX-Funktionen.
Ist auch ein interessanter Ansatz, diese Lösung der Gruppenzugehörigkeit. Nur für mich als Laie im Moment noch nicht klar.
MfG, Kungschu.
Hello,
Und das mache ich, indem ich alle POSIX-Funktionen Abfrage?
erstmal sehen, ob Du sie überhaupt benutzen darfst.
http://de3.php.net/manual/de/function.posix-getuid.php
und
<http://de3.php.net/manual/de/function.posix-getpid.php
und
[link:http://de3.php.net/manual/de/function.posix-getppid.php>
wären erstmal interessant.
Und wenn Du dann mittels der pid-Funktionen den Namen des Elternprozesses rausfinden kannst, bist Du schon ein Stück weiter.
Es geht darum, über diesen Weg die Gruppenzugehörigkeiten herauszufinden, aber das schrieb ich ja bereits.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo.
Ich habe jetzt immer diese Zeile:
$exec = exec('ls -la ../', $_result);
deines obigen Codes mit den drei Befehlen ersetzt und anschließend das Script ausgeführt; immer kam der Fehler:
Call to undefined function: postix_***() (***=entspricht jeweiliger funktion)
Oder habe ich dich jetzt falsch verstanden, mit "erstmal sehen, ob Du sie überhaupt benutzen darfst."?
MfG, Kungschu.
Hello,
Ich habe jetzt immer diese Zeile:
$exec = exec('ls -la ../', $_result);
deines obigen Codes mit den drei Befehlen ersetzt und anschließend das Script ausgeführt; immer kam der Fehler:
Call to undefined function: postix_***() (***=entspricht jeweiliger funktion)
Oder habe ich dich jetzt falsch verstanden, mit "erstmal sehen, ob Du sie überhaupt benutzen darfst."?
Weiß ich nicht, weil ich nicht weiß, was Du tatsächlich im Script drinstehen hast.
Mach doch mal ein 1:1-Posting davon.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo.
Da steht zB drinn:
<?php ### get_config.php ###
error_reporting(E_ALL);
$_result = array();
php_sapi_name();
$postix_getppid = postix_getppid('ls -la ../', $_result);
$_result[] = '---------------------------------';
$_result[] = "PHP-Installation: ".php_sapi_name();
echo "<pre>\n";
foreach($_result as $line)
{
echo $line."\n";
}
echo "</pre>\n";
?>
Also im Prinzip indentisch zu oben.
MfG, Kungschu.
Hello,
Da steht zB drinn:
$postix_getppid = postix_getppid('ls -la ../', $_result);
---- --------------------------
wie passt das denn zur Funktionsbeschreibung?
http://www.php.net/manual/de/function.posix-getpid.php
$_result[] = '---------------------------------';
$_result[] = "PID: $posix_getppid";
$_result[] = '---------------------------------';
$_result[] = "PHP-Installation: ".php_sapi_name();
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo.
Hello,
Da steht zB drinn:
$postix_getppid = postix_getppid('ls -la ../', $_result);
---- --------------------------wie passt das denn zur Funktionsbeschreibung?
http://www.php.net/manual/de/function.posix-getpid.php
Oh, Tippfehler. Ansonsten kann ich damit jetzt nichts anfangen. Was sollte ich nun ausführen, um besagte Infos (Usernamen des Apachen etc.) zu erfahren?
MfG, Kungschu.
Hallo.
Username und Gruppe des Apachen hab ich jetzt über den Support in Erfahrung gebracht.
Also verwende ich jetzt chgrp()?
Das könnte dann so aussehen, nehme ich an.?
$datei = "daten.txt";
$datei = chgrp($datei, NAME.DER.APACHEN.GRUPPE);
Dann konfiguriere ich über das FTP-Prog die Schreiberlaubnis der daten.txt für Besitzer und Gruppe.? Korrekt?
MfG, Kungschu.
Hello,
Username und Gruppe des Apachen hab ich jetzt über den Support in Erfahrung gebracht.
Also verwende ich jetzt chgrp()?
Sollest Du versuchen
Funktioniert aber nur dann, wenn der User entweder root ist, oder der Owner der Datei auch Mitglied in der Gruppe des Apachen ist.
Das könnte dann so aussehen, nehme ich an.?
$datei = "daten.txt";
$datei = chgrp($datei, NAME.DER.APACHEN.GRUPPE);
> Dann konfiguriere ich über das FTP-Prog die Schreiberlaubnis der daten.txt für Besitzer und Gruppe.? Korrekt?
Gruppe müsste sicher hochgesetzt werden, Others könntest Du dann auch mal probehalber auf 0 setzen.
Harzliche Grüße vom Berg
<http://www.annerschbarrich.de>
Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
![](http://bitworks.de/~selfHTML/Virencheck.gif)
Hallo.
So, versucht.
Ergebnis:
chgrp(): Unable to find gid for ****** (******=Gruppe)
Code war:
$datei = "daten.txt";
$datei = chgrp($datei, "NAME.DER.APACHEN.GRUPPE");
Gruppe müsste sicher hochgesetzt werden, Others könntest Du dann auch mal probehalber auf 0 setzen.
Ob mit oder ohne Others, kein Erfolg.
MfG, Kungschu.
Hello,
So, versucht.
Ergebnis:
chgrp(): Unable to find gid for ****** (******=Gruppe)Code war:
[code]
$datei = "daten.txt";$datei = chgrp($datei, "NAME.DER.APACHEN.GRUPPE");
Ich kann mir nicht vorstellen, dass das OS Sternchen zurückgibt als Fehlermeldung und dass PHP die einfügt, glaube ich auch nicht.
Der Apache ist als Owner des Files auf jeden Fall berechtigt, die Gruppe auf eine seiner Gruppen zu ändern.
Wenn Du aber partout nicht schreiben willst, was Fakt ist, kann man Dir auch nicht helfen.
Status Quo: Welche Verzeichnisse und Dateien sind da? Welche Owner, Gruppem und rechte gelten dafür?
Welche Argumente hast Du _tatsächlich_ und _buchstabengetreu_ in die Statements eingefügt?
Welche Antworten vom System waren daraufhin erreichbar?
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo.
Ich kann mir nicht vorstellen, dass das OS Sternchen zurückgibt als Fehlermeldung und dass PHP die einfügt, glaube ich auch nicht.
Nein. Mit den Sternchen wurde der Name der Gruppe von mir zensiert, da ich nicht weiß, wie sensibel eine solche Information ist.
Der Apache ist als Owner des Files auf jeden Fall berechtigt, die Gruppe auf eine seiner Gruppen zu ändern.
Ist schlüssig.
Wenn Du aber partout nicht schreiben willst, was Fakt ist, kann man Dir auch nicht helfen.
Fakt ist:
Ich habe, wie in vorigem Posting dargestellt, versucht, die Gruppe zu ändern. Also:
$datei = "daten.txt";
$datei = chgrp($datei, "NAME.DER.APACHEN.GRUPPE");
Obige Fehlermeldung (chgrp(): Unable to find gid for ****** (******=Gruppe)) ist dabei entstanden. Offenbar wende ich chgrp() nicht korrekt an. Was heißt / ist gid?
Status Quo: Welche Verzeichnisse und Dateien sind da? Welche Owner, Gruppem und rechte gelten dafür?
Rechte:
Lesen:Alle
Schreiben:Besitzer u Gruppe
Ausführen:Niemand
Owner bin ich, Gruppe ist dann wohl die Apachen-Gruppe.??
Für mich ist es schwer festzustellen, was tatsächlich Fakt ist, wie ich diesen feststelle und was ich dir an Information weiterreichen sollte / kann. Das mag für dich als "Profi" nicht nachvollziehbar und vielleicht nervig sein. Ich gebe mein Bestes in Dingen php ...
MfG, Kungschu.
Hallo.
Die einzig verbleibende Alternative wäre, die Datei mittels Script erzeugen zu lassen, womit sie dann dem Apache-User gehört. Natürlich hast du selbst dann keinen Schreibzugriff mehr darauf.
Erzeugen? Also beispielsweise $fh = fopen(text.txt,"w"); ?
Inwiefern hätte ich dann keinen Schreibzugriff mehr auf die Datei. Überhaupt nicht mehr, oder eben nur noch mit dem Script? Gesetzt Fall 2, könnte ich die Datei ja mittels unlink() wieder löschen.?
MfG, Kungschu.
Hello,
Erzeugen? Also beispielsweise $fh = fopen(text.txt,"w"); ?
Inwiefern hätte ich dann keinen Schreibzugriff mehr auf die Datei. Überhaupt nicht mehr, oder eben nur noch mit dem Script? Gesetzt Fall 2, könnte ich die Datei ja mittels unlink() wieder löschen.?
Zeite Frage zuerst: Da der Safe-Mode nicht läuft mMn ja.
Ja, mittels fopen() kann eine Datei erstellt werden.
Um eine leere Datei zu ertellen, geht auch touch().
Ich würde die Datei dann übrigens ".daten.txt" nennen...
wobei das Wort "daten" austauschbar ist, der führende Punkt ist wichtig.
Die Extension sollte keinesfalls "php" oder "pl" lauten
Wenn Dein Provider einen einigermaßen sinnvoll eingerichtetn Apache betreibt, dann hast Du gute Chanchen, dass eine mit führendem Punkt benannte Datei nicht direkt über den Browser (Normaler HTTP-Request) erreichbar ist. Das Gleiche gilt dann übrigens auch für Verzeichnisse.
Wenn der Access-Schutz bei Dir eingerichtet ist, und Du Dir ein Verzeichnis mit führendem Punkt anlegst, kannst Du darin alle Dateien ablegen, die nicht (direkt) für die Öffentlichkeit bestimmt sind.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo.
Wenn Dein Provider einen einigermaßen sinnvoll eingerichtetn Apache betreibt, dann hast Du gute Chanchen, dass eine mit führendem Punkt benannte Datei nicht direkt über den Browser (Normaler HTTP-Request) erreichbar ist. Das Gleiche gilt dann übrigens auch für Verzeichnisse.
Wenn der Access-Schutz bei Dir eingerichtet ist, und Du Dir ein Verzeichnis mit führendem Punkt anlegst, kannst Du darin alle Dateien ablegen, die nicht (direkt) für die Öffentlichkeit bestimmt sind.
ähm, htaccess wird unterstützt, ja. Ob ich aber jeder/m x-beliebigen Datei / Verzeichnis nen Punkt vorne hin stellen kann, muss ich erst noch testen. Wobei, selbst wenn HTTP-Request nicht mehr möglich ist, ja immernoch jeder Hans W. mit einem kleinen Script( fwrite() ) Inhalte in text.txt einfügen könnte, sprich, Inhalte auf meiner Webseite einfügen könnte.?
MfG, Kungschu.
Hello,
ähm, htaccess wird unterstützt, ja. Ob ich aber jeder/m x-beliebigen Datei / Verzeichnis nen Punkt vorne hin stellen kann, muss ich erst noch testen.
Tu das, und erzähle, was passiert. Erzeuge sie aber mittels Script!
Wobei, selbst wenn HTTP-Request nicht mehr möglich ist, ja immernoch jeder Hans W. mit einem kleinen Script( fwrite() ) Inhalte in text.txt einfügen könnte, sprich, Inhalte auf meiner Webseite einfügen könnte.?
Wenn der Server passend eingerichtet ist, nicht.
Dann gibt es nämlich keine User, die ihn "normal" betreten dürfen, also eine Shell bekommen.
Alle anderen können nur über deamons zugreifen, und die halten sich an die Spielregeln.
Die User bekommen nur Zugriff auf ihre "Box"
Das Konzept ist zwar extrem kritisch, da übergeordente Zugriffsrechte eigentlich nicht in die Hoheit von Anwendungen (Diensten) gehören, es funktioniert aber... :-|
Whin Dein PHP Dich lässt, kannst Du u.a. der Einstellung "open_basedir" entnehmen, die Du mittels "phpinfo()" oder ini_get() innerhalb eines Scriptes erfragen können solltest.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo.
Tu das, und erzähle, was passiert. Erzeuge sie aber mittels Script!
Also mittels Script kann ich etwa .daten.txt nicht erzeugen, da bekomme ich, egal ob mit fopen() oder touch ():
Warning: touch(): Unable to create file ../.daten.txt because Permission denied
Die File ist auch nicht gegen HTTP-Request geschützt, also kein Effekt.
MfG, Kungschu.
Hello,
Also mittels Script kann ich etwa .daten.txt nicht erzeugen, da bekomme ich, egal ob mit fopen() oder touch ():
Warning: touch(): Unable to create file ../.daten.txt because Permission deniedDie File ist auch nicht gegen HTTP-Request geschützt, also kein Effekt.
In welchem Verzeichnis liegt denn das Script?
Hast Du versucht, das in demselben Verzeichnis zu erzeugen, wo das Script liegt?
also touch('.daten.txt');
oder touch('./.daten.txt');
und nicht touch('../.daten.txt');
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo.
In welchem Verzeichnis liegt denn das Script?
Hast Du versucht, das in demselben Verzeichnis zu erzeugen, wo das Script liegt?
Jetzt ja. Nichts zu machen.
MfG, Kungschu.
Hello,
In welchem Verzeichnis liegt denn das Script?
Hast Du versucht, das in demselben Verzeichnis zu erzeugen, wo das Script liegt?Jetzt ja. Nichts zu machen.
Das kann ich mir nicht vorstellen.
Ich fasse nochmal zusammen:
Bitte lass Dir mittels FTP-Client mal eine Übersicht anzeigen (Dateibaaum) möglichst mit den Rechten und psote das hier mal.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo.
Jetzt ja. Nichts zu machen.
Das kann ich mir nicht vorstellen.
Ich fasse nochmal zusammen:
- Safe-Mode läuft nicht
Ja.
- PHP läuft als Modul in Apache
Ja.
- Mit FTP können File hochgeladen werden
Ja.
- Rechte können mit FTP innerhalb des FTP-Containers verändert werden.
Ja.
Bitte lass Dir mittels FTP-Client mal eine Übersicht anzeigen (Dateibaaum) möglichst mit den Rechten und psote das hier mal.
Wüsste nicht, wie das geht.(Programm:Cyberduck)
Könnte es hinderlich sein, dass ich gerade meinen gesamten webspace unter htaccess-Schutz habe?
MfG, Kungschu.
Hallo kungschu.
Tu das, und erzähle, was passiert. Erzeuge sie aber mittels Script!
Also mittels Script kann ich etwa .daten.txt nicht erzeugen, da bekomme ich, egal ob mit fopen() oder touch ():
Warning: touch(): Unable to create file ../.daten.txt because Permission denied
Du musst vorrübergehend die Schreibrechte für Alle für das jeweilige Verzeichnis festlegen. Soll eine Datei erstellt oder gelöscht werden, muss man in das Verzeichnis, in dem sie sich befindet, schreiben dürfen. (Denn tatsächlich wir hierbei ja nur ein Verzeichniseintrag angelegt bzw. gelöscht.)
Einen schönen Montag noch.
Gruß, Mathias
Hallo.
Du musst vorrübergehend die Schreibrechte für Alle für das jeweilige Verzeichnis festlegen. Soll eine Datei erstellt oder gelöscht werden, muss man in das Verzeichnis, in dem sie sich befindet, schreiben dürfen. (Denn tatsächlich wir hierbei ja nur ein Verzeichniseintrag angelegt bzw. gelöscht.)
Aha. Wie funktioniert sowas? Also eine vorübergehende Änderung des Schreibrechts einer Datei / der Dateien?
MfG, Kungschu.
Hallo kungschu.
Du musst vorrübergehend die Schreibrechte für Alle für das jeweilige Verzeichnis festlegen. Soll eine Datei erstellt oder gelöscht werden, muss man in das Verzeichnis, in dem sie sich befindet, schreiben dürfen. (Denn tatsächlich wir hierbei ja nur ein Verzeichniseintrag angelegt bzw. gelöscht.)
Aha. Wie funktioniert sowas? Also eine vorübergehende Änderung des Schreibrechts einer Datei / der Dateien?
… des Verzeichnisses. Das kannst du mit deinem FTP-Client erledigen. Ändere dort die Rechte, lasse dein Script die Datei erstellen und stelle die Rechte danach wieder her.
Einen schönen Montag noch.
Gruß, Mathias
Hallo.
Ah, ok. Das wäre in der Tat eine Möglichkeit, dient aber nicht meinem Ziel. Ich möcht content eben NUR über das Script einfügen (Content-managing). Ansonsten könnte ich ja auch gleich die File mit ergänztem content neu hochladen.
Ziel ist:
Content durch Script ergänzen ohne die Datei für jeden beschreibbar auf dem Server liegen zu haben.
Trotzdessen Danke für deine Beitrag!
Schöne Nacht noch.
MfG, Kungschu.
Hallo Forum.
Nun ist mein Problem gelöst, deshalb hier die Lösung für die Nachleser:
Es ist in der Regel Standart, dass der FTP-User alle Besitzrechte hat. Ein Zugriff, etwa um mit einem php-Script zu schreiben, wie in meinem Fall ( fwrite() ), ist daher nur möglich (jetzt wird es all-inkl.de spezifisch), wenn im KundenAdministrationsSystem (kurz KAS) für das entsprechende Verzeichnis (in das geschrieben werden soll) die Besitzrechte an den Apache-Server übertragen werden.
Ist dies geschehen, können per php-Script und chmod() kurzzeitig (nämlich für die Zeit der Bearbeitung durch das Script) die Rechte für jeden User angepasst werden. Nach der Bearbeitung setzt man sie einfach wieder zurück. Zur Anwendung von chmod(), hier entlang.
Zusammengefasst: So lässt sich durch das Script content ergänzen, ohne längerfristig ein Sicherheitsleck zu erzeugen.
Herzlichen Dank an Alle, im besonderen an Tom, der mir an zwei Tagen zu zwei Problemen mit Ausdauer und Sachverstand geholfen hat.
Sollte meine "LÖSUNG." hier zu erhänzen sein; Gerne.
Gute Nacht noch.
MfG, Kungschu.