NGINX, FastCGI PHP mit FTP-Zugriff, Wie werden Benutzer / Berechtigungen eingerichtet?

8514
farinspace

Ich habe Herumspielen mit Ubuntu, NGINX, PHP usw. vor kurzem.

Ich möchte in der Lage sein, FTP und Benutzer einzurichten ... das Problem, das ich habe, ist, dass FastCGI PHP unter www-data (Benutzer) läuft, aber wenn über FTP über ein allgemeines Benutzerkonto (Farinspace) angemeldet ist. Die Dateien sind geschrieben mit farinspace als Eigentümer / Gruppe ...

Im Moment verwende ich vsftpd, denke aber, dass pureftp die Rechnung besser für die automatische Einstellung der Dateiberechtigungen beim Upload eignet.

Was ist der beste Weg, um FTP richtig einzurichten, mehrere FTP-Benutzerkonten zu haben und die Dateiberechtigungen für die Benutzer richtig / sicher festzulegen, während PHP vollen Lese- / Schreibzugriff auf die Dateien / Verzeichnisse hat, die von einem FTP-Benutzer erstellt wurden?

2

2 Antworten auf die Frage

2
BMiner

Zuerst müssen Sie für jeden Benutzer separate Unix-Konten einrichten. Ordnen Sie diese Konten dem FTP-Server zu. Obwohl wirklich, sollten Sie Secure FTP über SSH verwenden. Mit neueren Versionen von OpenSSH können Sie "Nur SFTP" -Konten einrichten, die im Basisverzeichnis des Benutzers Chrooted sind. Bam! Jetzt können sich Benutzer sicher in ihren eigenen Heimatverzeichnissen anmelden, ohne dass das gesamte Dateisystem sichtbar ist. Dateien werden mit eigenen Benutzer- / Gruppenberechtigungen geschrieben.

Anschließend können Sie FastCGI so einrichten, dass es mit individuellen Benutzerberechtigungen ausgeführt wird. Es sieht kompliziert aus, aber hier gibt es ein Tutorial: So richten Sie FastCGI mit individuellen Berechtigungen ein

Dies ist wahrscheinlich der beste (wenn auch komplexeste) Ansatz, wenn Sie versuchen, Shared Hosting für verschiedene Benutzer einzurichten, insbesondere wenn diese "nicht vertrauenswürdige" Benutzer sind. Auf diese Weise kann niemand PHP-Skripts verwenden, um die Dateien des anderen zu beschädigen.

Wenn Sie mit der Tatsache leben können, dass ein Benutzer böswillig auf die Dateien eines anderen Benutzers zugreifen kann, können Sie FastCGI weiterhin als www-data ausführen. Wenn Sie dann das Basisverzeichnis jedes Benutzers einrichten, nehmen Sie die Dateien im Besitz von www-data GROUP vor. Setzen Sie dann das Umschaltbit in chmod (dh chmod 2770 statt nur 770). Dadurch werden neu erstellte Dateien gezwungen, den Besitzer der www-data-Gruppe zu erben und FastCGI zum Lesen / Schreiben dieser Dateien zuzulassen.

Puh! Das war langatmig. Lassen Sie mich wissen, wie es ausgeht, indem Sie hier einen Kommentar posten!

0
Ed Bloom

Ich habe ein Tutorial geschrieben, in dem erklärt wird, wie ich hier einzelne Benutzerkonten einrichte, die getrennte PHP-Prozesspools mit nginx und php-fpm ausführen:

http://themesforge.com/performance/configuring-nginx-php5-fpm-and-user-permissions/

Ed

thx für die Info, was ich an den Pools derzeit nicht mag, ist, dass es einfach nur darum geht, Speicher zu verschwenden. Das einzige, was nötig ist, ist die Möglichkeit, PHP als anderen Besitzer pro vhost auszuführen farinspace vor 12 Jahren 0
yeah einverstanden - im Moment ist es ein bisschen ineffizient in Ordnung - ich bin sicher, dass sich die Pool-Prozessverwaltungslogik in Zukunft weiterentwickeln wird, um nur bei Bedarf zu starten - hoffentlich! Ed Bloom vor 12 Jahren 0