Zugriffsberechtigungen für Dateisysteme

In diesem Abschnitt wird beschrieben, wie Sie den/die Verantwortlichen für das Commerce-Dateisystem für ein Entwicklungs- und Produktionssystem einrichten. Bevor Sie fortfahren, lesen Sie die Konzepte unter Übersicht über Dateisystemeigentum und -berechtigungen.

In diesem Abschnitt werden Entwicklungs- und Produktionssysteme für Commerce vorgestellt. Wenn Sie Commerce installieren, lesen Sie Festlegen von Eigentum und Berechtigungen für die Vorinstallation.

In den folgenden Abschnitten werden die Anforderungen für einen oder zwei Dateisystembesitzer erläutert. Das bedeutet:

  • Ein Benutzer - Wird in der Regel bei Anbietern für gemeinsam genutztes Hosting benötigt, die Ihnen den Zugriff auf nur einen Benutzer auf dem Server ermöglichen. Dieser Benutzer kann sich anmelden, Dateien über FTP übertragen, und dieser Benutzer führt auch den Webserver aus.

  • Zwei Benutzer - Wenn Sie Ihren eigenen Commerce-Server ausführen, empfehlen wir zwei Benutzer: einen zum Übertragen von Dateien und 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 die Admin- und Storefront ausführt.

    • Ein Befehlszeilenbenutzer“, ein lokales Benutzerkonto ist, mit dem Sie sich beim Server anmelden können. Dieser Anwender führt Commerce Cron-Aufträge und Befehlszeilen-Dienstprogramme aus.

Eigentümerschaft am Produktionsdateisystem für freigegebenes Hosting (ein Benutzer)

Um das One-Owner-Setup zu verwenden, müssen Sie sich beim Commerce-Server als derselbe Benutzer anmelden, der den Webserver ausführt. Dies ist typisch für freigegebenes Hosting.

Da es weniger sicher ist, einen Dateisystembesitzer zu haben, empfehlen wir, Commerce in der Produktion auf einem privaten Server bereitzustellen, anstatt auf freigegebenem Hosting, sofern möglich.

Einen Besitzer für den Standard- oder Entwicklermodus einrichten

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.

Einen Verantwortlichen für den Produktionsmodus einrichten

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 vorangehenden Verzeichnisse Lese- und Schreibzugriff besitzen.

Code-Dateien und Verzeichnisse schreibgeschützt machen

So entfernen Sie Schreibberechtigungen für Dateien und Ordner aus der Gruppe der Webserverbenutzer:

  1. Melden Sie sich beim Commerce-Server an.

  2. Wechseln Sie in das Commerce-Installationsverzeichnis.

  3. Wechseln Sie in den Produktionsmodus .

    code language-bash
    bin/magento deploy:mode:set production
    
  4. 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
    
  5. Machen Sie das Befehlszeilen-Tool ausführbar.

    code language-bash
    chmod u+x bin/magento
    

Schreiben von Code-Dateien und Verzeichnissen

So machen Sie Dateien und Verzeichnisse schreibbar, damit Sie Komponenten aktualisieren und die Commerce-Software aktualisieren können:

  1. Melden Sie sich beim Commerce-Server an.

  2. Wechseln Sie in das Commerce-Installationsverzeichnis.

  3. Geben Sie die folgenden Befehle ein:

    code language-bash
    chmod -R u+w .
    

Optional magento_umask festlegen

Siehe Optional eine Umaske festlegen im Installationshandbuch.

Eigentümerschaft am Produktionsdateisystem für privates Hosting (zwei Benutzer)

Wenn Sie Ihren eigenen Server verwenden (einschließlich des privaten Server-Setups eines Hosting-Anbieters), gibt es zwei Benutzer:

  • Der Webserver-Benutzer, der die Admin- und Storefront ausführt.

    Linux-Systeme stellen für diesen Benutzer in der Regel keine Shell bereit. Sie können sich nicht als Webserver-Benutzer beim Commerce-Server anmelden oder zu diesem wechseln.

  • Der Befehlszeilenbenutzer, mit dem Sie sich beim Commerce-Server anmelden oder zu dem Sie wechseln.

    Commerce verwendet diesen Benutzer, um CLI-Befehle und Cron auszuführen.

    note info
    INFO
    Der Befehlszeilenbenutzer wird auch als "".

Da diese Benutzer Zugriff auf dieselben Dateien benötigen, empfehlen wir, eine freigegebene Gruppe“ zu erstellen der sie beide angehören. Bei den folgenden Verfahren wird davon ausgegangen, dass Sie dies bereits getan haben.

Siehe einen der folgenden Abschnitte:

  • Zwei Dateisystembesitzer im Entwickler- oder Standardmodus
  • Zwei Dateisystembesitzer im Produktionsmodus

Zwei Eigentümer für den Standard- oder Entwicklermodus einrichten

Dateien in den folgenden Verzeichnissen müssen sowohl im Entwickler- als auch im Standardmodus schreibgeschützt sein:

  • var
  • generated
  • pub/static
  • pub/media
  • app/etc

Legen Sie das setgid-Bit für Ordner fest, sodass Berechtigungen immer vom übergeordneten Ordner erben.

INFO
setgid gilt nur für Verzeichnisse nicht Dateien.

Darüber hinaus sollten die Ordner von der Webservergruppe beschreibbar sein. Da in diesen Verzeichnissen möglicherweise Inhalte vorhanden sind, fügen Sie die Berechtigungen rekursiv hinzu.

Festlegen von Berechtigungen und setgid

So legen Sie setgid und Berechtigungen für den Entwicklermodus fest:

  1. Melden Sie sich bei Ihrem Commerce-Server als Dateisystembesitzer an oder wechseln Sie zu diesem.

  2. 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 Dateisystembesitzer 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

Code-Dateien und Verzeichnisse schreibgeschützt machen

So entfernen Sie Schreibberechtigungen für Dateien und Ordner aus der Gruppe der Webserverbenutzer:

  1. Melden Sie sich beim Commerce-Server an.

  2. Wechseln Sie in das Commerce-Installationsverzeichnis.

  3. Geben Sie als Verantwortlicher für das Dateisystem den folgenden Befehl ein, um in den Produktionsmodus zu wechseln:

    code language-bash
    bin/magento deploy:mode:set production
    
  4. Geben Sie den folgenden Befehl als Benutzer mit root 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
    

Schreiben von Code-Dateien und Verzeichnissen

So machen Sie Dateien und Verzeichnisse schreibbar, damit Sie Komponenten aktualisieren und die Commerce-Software aktualisieren können:

  1. Melden Sie sich beim Commerce-Server an.

  2. Wechseln Sie in das Commerce-Installationsverzeichnis.

  3. 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
    
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c