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 Übersicht über die Eigentümerschaft und Berechtigungen des Dateisystems.

Dieses Thema konzentriert sich auf Commerce-Entwicklungs- und Produktionssysteme. Wenn Sie Commerce installieren, lesen Sie Festlegen 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 und Dateien über FTP übertragen. Außerdem führt dieser Benutzer den Webserver aus.

  • Zwei Benutzer—Wir empfehlen zwei Benutzer, wenn Sie Ihren eigenen Commerce-Server betreiben: einen, um Dateien zu übertragen und Befehlszeilen-Dienstprogramme auszuführen, 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.

    • A Befehlszeilenbenutzer: ein lokales Benutzerkonto, 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 Verzeichnisse schreibgeschützt sein.

Codedateien und Ordner schreibgeschützt machen

So entfernen Sie Schreibberechtigungen für Dateien und Ordner aus der Gruppe des Webserver-Benutzers:

  1. Melden Sie sich bei Ihrem Commerce-Server an.

  2. Wechseln Sie zum Installationsverzeichnis für Commerce.

  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
    

Code-Dateien und Ordner schreibbar machen

Damit Dateien und Ordner schreibbar sind, können Sie Komponenten aktualisieren und die Commerce-Software aktualisieren:

  1. Melden Sie sich bei Ihrem Commerce-Server an.

  2. Wechseln Sie zum Installationsverzeichnis für Commerce.

  3. Geben Sie die folgenden Befehle ein:

    code language-bash
    chmod -R u+w .
    

Optional festgelegt magento_umask

Siehe Festlegen einer Umfrage 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:

  • Die Webserver-Benutzer, wodurch Admin und Storefront ausgeführt werden.

    Linux-Systeme bieten für diesen Benutzer normalerweise keine Shell. Sie können sich nicht beim Commerce-Server als Webserver-Benutzer anmelden oder zu ihm wechseln.

  • Die Befehlszeilenbenutzer, bei dem Sie sich bei Ihrem Commerce-Server als anmelden oder zu wechseln.

    Commerce verwendet diesen Benutzer zum Ausführen von CLI-Befehlen und Cron.

    note info
    INFO
    Der Befehlszeilenbenutzer wird auch als Dateisysteminhaber.

Da diese Benutzer Zugriff auf dieselben Dateien benötigen, empfehlen wir, eine freigegebene Gruppe denen sie beide angehö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

Legen Sie die setgid in Verzeichnissen hinzugefügt werden, sodass Berechtigungen immer vom übergeordneten Verzeichnis erben.

INFO
setgid gilt nur für Verzeichnisse, not in 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.

Berechtigungen festlegen und setgid

Zum Festlegen setgid und Berechtigungen für den Entwicklermodus:

  1. Melden Sie sich bei Ihrem Commerce-Server als Dateisysteminhaber an oder wechseln Sie zu ihm.

  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 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:

  1. Melden Sie sich bei Ihrem Commerce-Server an.

  2. Wechseln Sie zum Installationsverzeichnis für Commerce.

  3. 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
    
  4. Geben Sie den folgenden Befehl als Benutzer mit root -Berechtigungen:

    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:

  1. Melden Sie sich bei Ihrem Commerce-Server an.

  2. Wechseln Sie zum Installationsverzeichnis für Commerce.

  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