Mein Serveradministrator möchte, dass ich öffentliche Schreibberechtigungen für ein Verzeichnis festlege

9

Ich bin relativ neu in der Webentwicklung, bitte haben Sie etwas Geduld.

Ich bin hauptsächlich ein iPhone-Entwickler, habe aber kürzlich eine Website für eine andere Person erstellt, die Shared Hosting verwendet. Ich könnte gut in Dateien in PHP auf dieser Site schreiben, ohne über Berechtigungen nachdenken zu müssen.

Ich bin gerade dabei, einen Webdienst für eine neue App bereitzustellen, die ich erstelle, aber es läuft nicht wirklich reibungslos. Der wichtigste Unterschied besteht darin, dass ich den Server eines anderen Benutzers verwende und nur über FTP / DB-Zugriff verfüge.

Grundsätzlich habe ich eine Menge PHP-Dateien, aus denen mein CMS besteht, wie folgt:

mysite.com/admin/manage_news.php
mysite.com/admin/manage_events.php

Diese Skripte bearbeiten dann entweder die Datenbank oder Dateien. Sie können problemlos mit der Datenbank interagieren, meine Skripte können jedoch nicht in das Dateisystem schreiben. Sie könnten beispielsweise versuchen, in die folgenden Dateien zu schreiben:

mysite.com/data/img/event_1.png
mysite.com/data/somefile.txt

Dies funktionierte gut bei meiner MAMP-Installation (lokal), aber sobald es auf dem Server bereitgestellt wurde, gab PHP bei jedem Schreibversuch Fehler aus ... so etwas wie das:

Datei "../data/img/someimage.png" konnte nicht zum Schreiben geöffnet werden.

Also habe ich dem Mann, der den Server betreibt, eine E-Mail geschickt und er kam zurück und sagte:

Funktioniert es mit öffentlicher Genehmigung? (777)

Und das tat es - aber ich war sehr vorsichtig mit der Verwendung öffentlicher Berechtigungen, also habe ich es sofort wieder deaktiviert. Ich schrieb ihm per E-Mail: "Wie kann ich meine PHP-Skripte mit Standardbenutzerberechtigungen schreiben lassen?" Und er sagte:

Lass es als öffentlich, es wird gut

Ich denke, es ist ein IP-Konflikt irgendwo in der Domain-Auflösung, aber ich mache mir darüber keine Sorgen.

Ich schickte ihm dann eine E-Mail mit der Aufschrift "Das ist sicherlich unsicher" oder so ähnlich, und er antwortete mit folgenden Worten:

Die Realität ist, dass es Millionen von Websites gibt, darunter einige, die ich verwalte und die 777 in verschiedenen Ordnern haben. Es ist nur eine Lebenseinstellung.

Könnte mir jemand eine Idee für eine Lösung geben, die ich ihm geben könnte? Oder was kann ich tun, um die Verwendung von 777 zu vermeiden? Ich mag es wirklich nicht, wenn Ordner auf meiner Website / meinem Dienst öffentlich beschreibbar sind.

Ich würde mich sehr über Ihren Rat freuen, da ich sehr wenig über Webserver weiß.

Alex Coplan
quelle
12
Lauf weg von diesem Kerl und schau nicht zurück.
user9517
Nicht wirklich eine Option ... siehe die Kommentare zu SvenWs Antwort ...
Alex Coplan

Antworten:

13

Lassen Sie es uns zusammenfassen :

Der Benutzer, der das Skript ausführt, muss das Verzeichnis lesen, ausführen und schreiben. Es sollte also Folgendes sein:

7 = (r) ead, (w) rite, e (x) ecute

Andere Benutzer, die derselben Gruppe angehören, sollten in der Lage sein, die PHP-Datei innerhalb des Verzeichnisses auszuführen, aber nicht darauf zu schreiben (aus offensichtlichen Gründen). Sie müssen nicht unbedingt die PHP-Dateien lesen. Daher müssen wir nur Ausführungsberechtigungen bereitstellen:

1 = e (x) ecute

Gleiches gilt für die Öffentlichkeit. Das ist alles, was Sie für externe Benutzer benötigen, die PHP- und statische Dateien anzeigen müssen:

1 = e (x) ecute

Das absolute Minimum sollte also sein:

711

Ich habe die obigen Einstellungen mit meiner eigenen Konfiguration bestätigt, damit es funktioniert. Dies ist jedoch unter dem Standard-Webbenutzer. Wenn Sie mit einem anderen Login als www hochladen, befinden sich die Dateien und Verzeichnisse wahrscheinlich unter einem anderen Benutzer. In diesem Fall kann der Standard-Webbenutzer möglicherweise die Dateien, die Ihnen gehören, nicht lesen oder schreiben. Zu diesem Zeitpunkt müssen Sie wahrscheinlich den Standard-Webbenutzer zu Ihrer Gruppe hinzufügen (der Systemadministrator muss dies tun) und dann den Benutzern der Gruppe Lese-, Schreib- und Ausführungsberechtigungen erteilen:

771

Und das würde wahrscheinlich funktionieren. Entweder das, oder der Systemadministrator muss den Benutzer- und Gruppenbesitz dieser Dateien auf den Standard-Webserverbenutzer ändern (aber NICHT DIE ERLAUBNISSE!). Wenn dies immer noch nicht funktioniert, hilft uns eine Beispielausgabe der Berechtigungen (etwa "ls -la im Verzeichnis") bei der weiteren Fehlerbehebung. Dies gilt jedoch, solange Sie nur der Öffentlichkeit Ausführungsberechtigungen erteilen müssen ( oder "andere"), sollten Sie aus Sicherheitsgründen in Ordnung sein.

Rilindo
quelle
2
Ich wünschte, ich könnte zweimal upvoten.
Wesley
Das Problem ist wirklich, dass die Website nicht in Dateien innerhalb ihrer eigenen Struktur schreiben sollte, sondern in die Berechtigungen selbst.
James Ryan
Du hast recht. Abhängig von den Daten möchten Sie wahrscheinlich in eine Datei außerhalb der öffentlichen Webroot schreiben.
Rilindo
Hier schreibe ich in einen /dataOrdner - dieser Ordner enthält PHP-Skripte, aus denen mein JSON-Webdienst besteht, und eine Reihe von Bildern, die für Inhalte verwendet werden, die im Webdienst (in einem /data/imgOrdner) weitergegeben werden
Alex Coplan
Die Bilder müssen also öffentlich sein? Das hat die Dinge geklärt.
Rilindo
18
Leave it as public, it'll be fine

I reckon it's an ip conflict somewhere in the domain resolution, 
but I'm not worried about it.

Dieser Typ ist ein Idiot und das ist völliger Unsinn. Zugriffsrechte haben nichts mit IP-Adresse oder Domain-Auflösung zu tun, er lässt nur Wörter fallen.

Angesichts der Qualität dieses "Administrators" würde ich empfehlen, Ihre Site an einem anderen Ort zu hosten, da es sehr wahrscheinlich ist, dass die Site sehr schlecht und unsicher verwaltet wird. Nur 777Berechtigungen für etwas zu erteilen, damit es funktioniert, ist ein sicheres Zeichen, dass er nicht ein bisschen versteht, was er tut.

Welche Zugriffsrechte wirklich erforderlich sind, hängt von der Art und Weise ab, wie das System verwendet und konfiguriert wird, und es ist schwierig, Ihnen etwas zu sagen, ohne dies zu wissen.

Sven
quelle
danke - mein Gedanke ist genau über die Berechtigungen - ich habe nicht wirklich die Möglichkeit, es woanders zu hosten, da das Unternehmen, für das ich mich entwickle, nicht dafür bezahlt, und habe mir diesen Typen empfohlen und gesagt, dass sie ihn dazu bringen würden Mach es kostenlos - soweit ich das beurteilen kann, renne ich nur von einem seiner virtuellen Server. Wie funktioniert es normalerweise, wie kann ein PHP-Skript als "Benutzer" ausgeführt werden und daher in der Lage sein, auf irgendetwas auf der Site zu schreiben?
Alex Coplan
Nun, ich würde sie darüber informieren, was sie "kostenlos" bekommen. Ich habe nicht viel Erfahrung mit Shared Hosting, daher kann ich dazu nichts sagen. Meine Websites all Debian-Server und Ordner führten , dass sein muß beschreibbar im Besitz wird www-datamit 700Berechtigungen, aber dies wird wahrscheinlich nicht in Ihrem Fall zur Arbeit zu gehen.
Sven
Ich denke, sie bezahlen ihn auch für ihre Hauptseite, deshalb heißt es - wenn es am Ende einer Serverfehlerseite Hilfe gibtApache/2.2.9 (Debian) PHP/5.2.6-1
Alex Coplan
auch dies ist vps nicht geteilt
Alex Coplan
2
Nun, ich versuche herauszufinden, welche Berechtigungen und Eigentumsrechte Ihre Dateien auf den Server übertragen könnten. Wenn es sich um einen Benutzer handelt, der nicht mindestens Mitglied der www-dataGruppe ist, müssen Sie entweder Benutzer / Gruppen nach der Übertragung ändern oder tatsächlich 777Berechtigungen verwenden. Aber das ist sinnlos, wir können Ihnen so nicht helfen.
Sven