Jakie uprawnienia powinienem udzielić / var i / media?

Odpowiedzi:

18

Nie widziałem wiele wzmianek o używaniu 700 i 600, ale ogólnie jest to dobra rada. Niestety każda konfiguracja serwera jest inna i należy ją porównać z wygodą (dostęp użytkownika do aktualizacji / edycji plików).

Podstawowym podejściem powinno być rozdawanie tak mało, jak to możliwe i blokowanie jak najwięcej (700/600 jest do tego dobre). Pod tym względem „oficjalna” rada na wiki chce stosować się w jak największej liczbie okoliczności i sugeruje wszystkim uprawnienia do odczytu (co oznacza, że ​​każda naruszona inna usługa na serwerze będzie mogła na przykład odczytać aplikację / etc / local). xml z konfiguracją db).

W twoim przypadku wygląda to na to, że pliki są własnością innego użytkownika niż ten, na którym działa twój proces serwera / php. Zmiana własności plików na serwer internetowy powinna rozwiązać pierwotny problem.

Należy pamiętać, że użycie 700/600 i przypisanie plików do serwera oznacza, że ​​zwykły użytkownik nie będzie mógł edytować plików.

Poniżej uważam, że jest to dobry kompromis dla wygody vs blokowania. Wszystkie pliki są własnością użytkownika: webservergroup

var i media 770/660
Serwer i użytkownik mogą odczytywać i zapisywać z folderów var i media (sesja / pamięć podręczna / obrazy).

reszta 750/640
Twój użytkownik może edytować / aktualizować kod.
Serwer WWW jest w stanie odczytać pliki do wykonania / wyświetlenia.

Kristof w Fooman
źródło
2
Prawie dwa lata później i teraz zgadzam się z tym bardziej niż moją własną odpowiedzią.
philwinkle
Zdałem sobie sprawę, że nigdy nie dostałem odpowiedzi na ten problem, a moim problemem było to, że serwer nie był właścicielem plików. Poprosiłem również o wyjaśnienie uprawnień, aby uzyskać więcej standardowych praktyk, kiedy czytałem różne rzeczy.
Egregory
18

Na ogół wszystkie pliki powinny być 644i wszystkie foldery powinny być 755i powinny być własnością użytkownika serwer WWW działa pod . Plik magewykonywalny powinien mieć 550uprawnienia pozwalające na wykonanie.

Ten skrypt powłoki powinien załatać sprawę, jeśli jest uruchamiany z katalogu głównego Mage:

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

Źródło: http://www.magentocommerce.com/wiki/groups/227/resetting_file_permissions

philwinkle
źródło
5

Chociaż rozwiązanie Phila jest dobre, stosuję nieco inne podejście. Oprócz uczynienia właściciela pliku „php / webserver user”, tworzę dodatkową grupę. Zwykle nazywa się to dev . I dodam „user php” i sobie i innym deweloperom do tej grupy dev . Następnie wykonuję chgrp , aby wszystkie pliki w poddrzewie projektu Magento miały grupę dev . Dodam + s trochę do folderów, które gwarantuje, że nowo utworzone podfoldery uzyskać takie same uprawnienia.

Za pomocą skryptu fix_permissions.sh utworzyłem publiczną treść. Zachęcamy do korzystania z niego :) Pomaga utrzymać cały poddrzewo projektu Magento z dobrymi uprawnieniami.

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

Oryginalne pytanie - var i media muszą mieć takie uprawnienia, aby „użytkownik php” mógł czytać i zapisywać w tych folderach. Musi być w stanie zapisywać pamięć podręczną, pliki sesji itp. W var i musi być w stanie zapisywać pamięć podręczną obrazu produktu i obrazy w mediach. Postępuj zgodnie z zaleceniami Phila: chown lub chgrp to dla „użytkownika php” i daj uprawnienia rw „użytkownikowi php”.

Myślę, że bardziej poprawne jest odwoływanie się do „użytkownika php” w kontekście FPM (CGI). Użytkownik serwera WWW może różnić się od tego, który korzysta z PHP.

Sven
źródło
3
Masz absolutną rację, jeśli chodzi o terminologię dotyczącą użytkownika serwera WWW lub użytkownika php. Świetny punkt Trzeba się jednak zastanawiać, czy osoba pytająca, jak zmienić uprawnienia, wiedziałaby, czy korzysta z PHP FPM, czy nie ...
philwinkle
1

/ var - magento służy do zapisu pamięci podręcznej, sesji itp.

/ media - magento służy do aktualizacji obrazu produktu, kategorii obrazu (dowolnego typu obrazu).

Tak więc te dwa foldery powinieneś użyć uprawnienia do odczytu i zapisu. Inny plik, którego powinieneś użyć do odczytu + uprawnienia do wykonywania.

Sohel Rana
źródło
1

Uprawnienie do pliku to 644. Uruchom poniżej kodu w katalogu głównym, używając ssh. odnaleźć .

-type f -exec chmod 644 {} \;

Uprawnienie do folderu to 755. Uruchom poniżej kodu w katalogu głównym, używając ssh. odnaleźć .

-type d -exec chmod 755 {} \;

Uprawnienie do folderu Var wynosi 777. Uruchom poniżej kodu w katalogu głównym, używając ssh.

chmod -R 777 var

Uprawnienie do folderu statycznego to 777. Uruchom poniżej kodu w katalogu głównym, używając ssh.

chmod -R 777 pub/static

Uprawnienie do folderu multimediów to 777. Uruchom poniżej kodu w katalogu głównym, używając ssh.

chmod -R 777 pub/media
Abhinav Singh
źródło
2
Powyżej nie jest to, o co poprosił OP, dotyczy Magento 2.x nie Magento 1.7
Frank Groot
0

Stąd: 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
źródło