Welche Berechtigungen sollte ich / var und / media geben?

21

Ich verstehe, dass Magento angibt, / var und / media bei 700 für Ordner und 600 für Dateien zu haben, aber wenn ich das tue, werden bestimmte Teile meiner Site zerstört. Ich bin gespannt, welche Berechtigungen die meisten Benutzer für diese Ordner verwenden.

Egregory
quelle
wo hast du das gelesen mit 700?
FlorinelChis

Antworten:

18

Ich habe nicht viele Erwähnungen der Verwendung von 700 und 600 gesehen, aber es ist im Allgemeinen ein guter Rat. Leider ist jede Serverkonfiguration anders und muss gegen die Bequemlichkeit abgewogen werden (Benutzerzugriff auf das Aktualisieren / Bearbeiten von Dateien).

Der zugrunde liegende Ansatz sollte sein, nur so wenig wie möglich zu verschenken und so viel wie möglich zu blockieren (700/600 ist dafür gut). In dieser Hinsicht möchte der "offizielle" Rat im Wiki so viele Umstände wie möglich berücksichtigen und schlägt Leseberechtigungen für alle vor (was bedeutet, dass jeder gefährdete andere Dienst auf dem Server zum Beispiel die App / etc / local lesen kann. XML mit Ihrer Datenbankkonfiguration).

In Ihrem Fall klingt es derzeit so, als ob die Dateien einem anderen Benutzer gehören als dem, unter dem Ihr Webserver / PHP-Prozess ausgeführt wird. Wenn Sie den Eigentümer der Dateien auf den Webserver übertragen, sollte das ursprüngliche Problem behoben sein.

Bitte beachten Sie, dass die Verwendung von 700/600 und das Zuweisen der Dateien zum Webserver bedeutet, dass Ihr normaler Benutzer die Dateien nicht bearbeiten kann.

Das Folgende ist meines Erachtens ein guter Kompromiss aus Gründen der Bequemlichkeit oder zum Sperren. Alle Dateien gehören user: webservergroup

var und media 770/660
Der Server und Ihr Benutzer dürfen aus den Ordnern var und media (session / cache / images) lesen und schreiben.

der Rest 750/640
Ihr Benutzer kann den Code bearbeiten / aktualisieren.
Der Webserver kann die Dateien zur Ausführung / Anzeige lesen.

Kristof bei Fooman
quelle
2
Fast zwei Jahre später stimme ich dem mehr als meiner eigenen Antwort zu.
Philwinkle
Mir wurde klar, dass ich nie eine Antwort darauf gegeben hatte und das Problem war, dass sich die Dateien nicht im Besitz des Webservers befanden. Ich bat auch darum, die Berechtigungen zu klären, um mehr von einer Standardübung zu bekommen, während ich verschiedene Dinge las.
Egregory
18

In der Regel sollten alle Dateien sein 644und alle Ordner sollte sein 755und sollten vom Anwender Ihren Webserver läuft unter besessen werden . Die mageausführbare Datei sollte 550Berechtigungen erhalten, um die Ausführung zu ermöglichen.

Dieses Shell-Skript sollte die Dinge korrigieren, wenn es von Ihrem Mage-Root ausgeführt wird:

#!/bin/sh
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod 550 mage

Quelle: http://www.magentocommerce.com/wiki/groups/227/resetting_file_permissions

Philwinkle
quelle
5

Während Phils Lösung gut ist, benutze ich einen etwas anderen Ansatz. Zusätzlich zum "php / webserver user" -Eigentümer von Dateien erstelle ich eine zusätzliche Gruppe. Normalerweise heißt es dev . Und ich „php user“ und mich selbst und andere Entwickler zu dieser Gruppe hinzufügen dev . Dann mache ich chgrp so, dass alle Dateien im Magento-Projekt-Teilbaum Gruppen- dev haben . Ich füge + s Bit Ordnern hinzu, um sicherzustellen, dass die neu erstellten Unterordner die gleichen Berechtigungen erhalten.

Ich habe mit meinem Skript fix_permissions.sh eine öffentliche Liste erstellt. Fühlen Sie sich frei, es zu verwenden :) Es hilft Ihnen, Ihren gesamten Magento-Projekt-Teilbaum mit guten Berechtigungen zu behalten.

https://gist.github.com/svenvarkel/8062778#file-fix_permissions-sh

Die ursprüngliche Frage - var und das Medium müssen solche Berechtigungen haben, dass "PHP-Benutzer" diese Ordner lesen und in sie schreiben kann. Es muss in der Lage sein, Cache, Sitzungsdateien usw. unter var zu schreiben, und es muss in der Lage sein, Produktbild-Cache und Bilder unter Medien zu schreiben. Also tu, was Phil rät: chown oder chgrp diese an "php user" und gib rw Berechtigungen an "php user".

Ich denke, es ist richtiger, im Zusammenhang mit FPM (CGI) auf "PHP-Benutzer" zu verweisen. Der Benutzer des Webservers kann sich von dem unterscheiden, auf dem PHP ausgeführt wird.

Sven
quelle
3
Sie sind absolut korrekt in Bezug auf die Terminologie in Bezug auf Webserver-Benutzer vs. PHP-Benutzer. Großartiger Punkt. Man muss sich allerdings fragen, ob eine Person, die fragt, wie Berechtigungen geändert werden sollen, weiß, ob sie PHP FPM
ausführt
1

/ var - magento wird zum Schreiben von Cache-, Sitzungsdaten usw. verwendet.

/ media - wird von Magento zum Aktualisieren von Produktbildern und Kategoriebildern (jeder Bildtyp) verwendet.

Für diese beiden Ordner sollten Sie also Lese- und Schreibrechte verwenden. Andere Datei sollten Sie lesen + Ausführungsberechtigung verwenden.

Sohel Rana
quelle
1

Die Dateiberechtigung ist 644. Führen Sie mit ssh den folgenden Code im Stammverzeichnis aus. finden .

-type f -exec chmod 644 {} \;

Die Ordnerberechtigung ist 755. Führen Sie mit ssh den folgenden Code im Stammverzeichnis aus. finden .

-type d -exec chmod 755 {} \;

Die Berechtigung für den Ordner "Var" lautet 777. Führen Sie mit ssh den folgenden Code im Stammverzeichnis aus.

chmod -R 777 var

Die Berechtigung für statische Ordner ist 777. Führen Sie mit ssh den folgenden Code im Stammverzeichnis aus.

chmod -R 777 pub/static

Die Berechtigung für den Medienordner ist 777. Führen Sie mit ssh den folgenden Code im Stammverzeichnis aus.

chmod -R 777 pub/media
Abhinav Singh
quelle
2
Oben ist nicht was OP gefragt hat, dies ist für Magento 2.x nicht für Magento 1.7
Frank Groot
0

Von hier aus: http://devdocs.magento.com/guides/m1x/install/installer-privileges_after.html

find . -type f -exec chmod 400 {} \;
find . -type d -exec chmod 500 {} \; 
find var/ -type f -exec chmod 600 {} \; 
find media/ -type f -exec chmod 600 {} \;
find var/ -type d -exec chmod 700 {} \; 
find media/ -type d -exec chmod 700 {} \;
chmod 700 includes
chmod 600 includes/config.php
Ledian Hymetllari
quelle