Zugriffsberechtigungen für Dateisysteme
In diesem Abschnitt wird beschrieben, wie Sie den Eigentümer des Commerce-Dateisystems für ein Entwicklungs- und Produktionssystem einrichten. Bevor Sie fortfahren, sollten Sie die unter Überblick über die Eigentümerschaft und Berechtigungen des Dateisystems behandelten Konzepte lesen.
Dieser Themenbereich konzentriert sich auf die Entwicklungs- und Produktionssysteme von Commerce. Wenn Sie Commerce installieren, finden Sie weitere Informationen unter Einrichten von Eigentümern und Berechtigungen vor der Installation.
In den folgenden Abschnitten werden die Anforderungen für einen oder zwei Dateisysteminhaber besprochen. Das bedeutet:
-
Ein Benutzer: In der Regel bei freigegebenen Hosting-Anbietern erforderlich, die den Zugriff auf nur einen Benutzer auf dem Server ermöglichen. Dieser Benutzer kann sich anmelden, Dateien über FTP übertragen und der Webserver wird auch von diesem Benutzer ausgeführt.
-
Zwei Benutzer: Wir empfehlen zwei Benutzer, wenn Sie Ihren eigenen Commerce-Server ausführen: einen zum Übertragen von Dateien und zum Ausführen von Befehlszeilen-Dienstprogrammen und einen separaten Benutzer für die Webserver-Software. Wenn möglich, ist dies vorzuziehen, da es sicherer ist.
Stattdessen haben Sie separate Benutzer:
-
Der Webserver-Benutzer, der den Administrator und die Storefront ausführt.
-
Ein Befehlszeilenbenutzer, bei dem es sich um ein lokales Benutzerkonto handelt, mit dem Sie sich beim Server anmelden können. Dieser Benutzer führt Commerce-Cron-Aufträge und Befehlszeilen-Dienstprogramme aus.
-
Eigentümerschaft des Produktionsdateisystems für freigegebenes Hosting (ein Benutzer)
Um das Setup eines Eigentümers zu verwenden, müssen Sie sich bei Ihrem Commerce-Server als derselbe Benutzer anmelden, der den Webserver ausführt. Dies ist typisch für freigegebenes Hosting.
Da ein Dateisysteminhaber weniger sicher ist, empfehlen wir, Commerce möglichst auf einem privaten Server anstatt auf freigegebenem Hosting bereitzustellen.
Einrichten eines Eigentümers im Standard- oder Entwicklermodus
Im Standard- oder Entwicklermodus müssen die folgenden Ordner vom Benutzer schreibbar sein:
vendor
app/etc
pub/static
var
- Alle anderen statischen Ressourcen
generated/code
generated/metadata
var/view_preprocessed
Sie können diese Berechtigungen entweder über die Befehlszeile oder eine Datei-Manager-Anwendung festlegen, die von Ihrem freigegebenen Hosting-Anbieter bereitgestellt wird.
Einrichten eines Eigentümers für den Produktionsmodus
Wenn Sie bereit sind, Ihre Site für die Produktion bereitzustellen, sollten Sie den Schreibzugriff aus Dateien in den folgenden Verzeichnissen entfernen, um die Sicherheit zu verbessern:
vendor
app/code
app/etc
pub/static
- Alle anderen statischen Ressourcen
generated/code
generated/metadata
var/view_preprocessed
Um Komponenten zu aktualisieren, neue Komponenten zu installieren oder die Commerce-Software zu aktualisieren, müssen alle vorherigen Ordner schreibgeschützt sein.
Codedateien und Ordner schreibgeschützt machen
So entfernen Sie Schreibberechtigungen für Dateien und Ordner aus der Gruppe des Webserver-Benutzers:
-
Melden Sie sich bei Ihrem Commerce-Server an.
-
Wechseln Sie zum Installationsverzeichnis von Commerce.
-
Wechseln Sie in den Produktionsmodus.
code language-bash bin/magento deploy:mode:set production
-
Entfernen Sie Schreibberechtigungen für die folgenden Ordner.
code language-bash find app/code var/view_preprocessed vendor pub/static app/etc generated/code generated/metadata \( -type f -or -type d \) -exec chmod u-w {} + && chmod o-rwx app/etc/env.php
-
Machen Sie das Befehlszeilen-Tool ausführbar.
code language-bash chmod u+x bin/magento
Code-Dateien und Ordner schreibbar machen
Damit Dateien und Ordner schreibbar sind, können Sie Komponenten aktualisieren und die Commerce-Software aktualisieren:
-
Melden Sie sich bei Ihrem Commerce-Server an.
-
Wechseln Sie zum Installationsverzeichnis von Commerce.
-
Geben Sie die folgenden Befehle ein:
code language-bash chmod -R u+w .
Optional magento_umask
festlegen
Siehe Optional eine Umfrage festlegen im Installationshandbuch.
Eigentümerschaft des Produktionsdateisystems für privates Hosting (zwei Benutzer)
Wenn Sie Ihren eigenen Server verwenden (einschließlich des privaten Server-Setups eines Hosting-Providers), gibt es zwei Benutzer:
-
Der Webserver-Benutzer, der den Admin und die Storefront ausführt.
Linux-Systeme bieten für diesen Benutzer in der Regel keine Shell. Sie können sich nicht beim Commerce-Server als Webserver-Benutzer anmelden oder zu ihm wechseln.
-
Der Befehlszeilenbenutzer, bei dem Sie sich bei Ihrem Commerce-Server als anmelden oder zu ihm wechseln.
Commerce verwendet diesen Benutzer zum Ausführen von CLI-Befehlen und Cron.
note info INFO Der Befehlszeilenbenutzer wird auch als Dateisysteminhaber bezeichnet.
Da diese Benutzer Zugriff auf dieselben Dateien benötigen, empfehlen wir, eine freigegebene Gruppe zu erstellen, zu der sie beide gehören. Die folgenden Verfahren setzen voraus, dass Sie dies bereits getan haben.
Siehe einen der folgenden Abschnitte:
- Zwei Dateisysteminhaber oder Standardmodus
- Zwei Dateisysteminhaber im Produktionsmodus
Einrichten von zwei Eigentümern für den Standard- oder Entwicklermodus
Dateien in den folgenden Ordnern müssen sowohl vom Benutzer im Entwickler- als auch im Standardmodus schreibbar sein:
var
generated
pub/static
pub/media
app/etc
Setzen Sie das Bit setgid
in Verzeichnissen, damit die Berechtigungen immer vom übergeordneten Verzeichnis übernommen werden.
setgid
gilt nur für Verzeichnisse, nicht für Dateien.Darüber hinaus sollten die Ordner von der Webserver-Gruppe schreibbar sein. Da in diesen Verzeichnissen möglicherweise Inhalt vorhanden ist, fügen Sie die Berechtigungen rekursiv hinzu.
Festlegen von Berechtigungen und setgid
Festlegen von setgid
und Berechtigungen für den Entwicklermodus:
-
Melden Sie sich bei Ihrem Commerce-Server als Dateisysteminhaber an oder wechseln Sie zu ihm.
-
Geben Sie die folgenden Befehle in der angegebenen Reihenfolge ein:
code language-bash cd <magento_root>
code language-bash find var generated pub/static pub/media app/etc -type f -exec chmod g+w {} +
code language-bash find var generated pub/static pub/media app/etc -type d -exec chmod g+ws {} +
Zwei Dateisysteminhaber im Produktionsmodus
Wenn Sie bereit sind, Ihre Site für die Produktion bereitzustellen, sollten Sie den Schreibzugriff aus Dateien in den folgenden Verzeichnissen entfernen, um die Sicherheit zu verbessern:
vendor
app/code
app/etc
lib
pub/static
- Alle anderen statischen Ressourcen
generated/code
generated/metadata
var/view_preprocessed
Codedateien und Ordner schreibgeschützt machen
So entfernen Sie Schreibberechtigungen für Dateien und Ordner aus der Gruppe des Webserver-Benutzers:
-
Melden Sie sich bei Ihrem Commerce-Server an.
-
Wechseln Sie zum Installationsverzeichnis von Commerce.
-
Geben Sie als Eigentümer des Dateisystems den folgenden Befehl ein, um in den Produktionsmodus zu wechseln:
code language-bash bin/magento deploy:mode:set production
-
Geben Sie den folgenden Befehl als Benutzer mit
root
-Berechtigungen ein:code language-bash find app/code lib pub/static app/etc generated/code generated/metadata var/view_preprocessed \( -type d -or -type f \) -exec chmod g-w {} + && chmod o-rwx app/etc/env.php
Code-Dateien und Ordner schreibbar machen
Damit Dateien und Ordner schreibbar sind, können Sie Komponenten aktualisieren und die Commerce-Software aktualisieren:
-
Melden Sie sich bei Ihrem Commerce-Server an.
-
Wechseln Sie zum Installationsverzeichnis von Commerce.
-
Geben Sie den folgenden Befehl ein:
code language-bash find app/code lib var generated vendor pub/static pub/media app/etc \( -type d -or -type f \) -exec chmod g+w {} + && chmod o+rwx app/etc/env.php