我应该赋予/ var和/ media哪些权限?


Answers:


18

我很少提到使用700和600,但这通常是很好的建议。不幸的是,每个服务器的设置都是不同的,需要权衡便利性(用户对更新/编辑文件的访问权限)。

基本的方法应该是只放弃尽可能少的内容,并尽可能地将其锁定(700/600对此很有用)。在这方面,Wiki上的“官方”建议希望适用于尽可能多的情况,并建议所有人都具有读取权限(这意味着服务器上任何受感染的其他服务都将能够读取app / etc / local。 xml与您的数据库配置)。

就您而言,当前听起来文件是由与运行webserver / php进程的用户不同的用户拥有的。将文件的所有权更改为Web服务器应该可以解决您的原始问题。

请注意,使用700/600并将文件分配给Web服务器意味着普通用户将无法编辑文件。

我认为以下内容是便利还是锁定的不错折衷方案。所有文件均由user:webservergroup拥有

var和media 770/660
服务器和您的用户被允许从var和media文件夹(会话/缓存/图像)中读取和写入。

其余750/640
您的用户可以编辑/更新代码。
网络服务器能够读取文件以执行/显示。


2
将近两年后,我现在比我自己的回答更赞同这个观点。
philwinkle

我意识到我从未对此做出回应,而我遇到的问题是文件不归网络服务器所有。我还要求清除权限,以便在阅读其他内容时获得更多的标准实践。
Egregory,2015年

18

通常,所有文件应为644并且所有文件夹应为755并且应由您的Web服务器在其下运行的用户拥有。该mage可执行文件应给予550权限,允许执行。

如果从您的Mage根目录运行,此shell脚本应该修补问题:

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

来源:http//www.magentocommerce.com/wiki/groups/227/resetting_file_permissions


5

虽然Phil的解决方案很好,但是我使用了一些不同的方法。除了使文件的“ php / webserver用户”所有者外,我还创建了其他组。通常将其称为dev。然后将“ php用户”以及我自己和其他开发人员添加到该组dev中。然后我执行chgrp,以便Magento项目子树中的所有文件都具有dev组。我在文件夹中添加了+ s位,以确保新创建的子文件夹获得相同的权限。

我使用fix_permissions.sh脚本创建了一个公共要点。随时使用它:)它可以帮助您使整个Magento项目子树具有良好的权限。

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

最初的问题-var和media必须具有“ php用户”可以读取和写入这些文件夹的权限。它必须能够在var下写入缓存,会话文件等,并且必须能够在媒体下写入产品图片缓存和图片。因此,如Phil所建议的那样:将它们chown或chgrp给“ php user”,并给“ php user”赋予rw权限。

我认为在FPM(CGI)上下文中引用“ php用户”更为正确。Web服务器用户可以与运行PHP的用户不同。


3
关于Web服务器用户与php用户的术语,您绝对正确。好点。但是,必须怀疑是否有人问如何更改权限会知道他们是否正在运行PHP FPM ...
philwinkle 2013年

1

/ var -magento用于写入缓存,会话等数据。

/ media -magento用于上传产品图片,类别图片(任何类型的图片)。

因此,这两个文件夹必须使用读写权限。您应该使用读取+执行权限的其他文件。


1

文件许可为644。使用ssh在根目录中的以下代码中运行。找 。

-type f -exec chmod 644 {} \;

文件夹许可为755。使用ssh在根目录下运行以下代码。找 。

-type d -exec chmod 755 {} \;

Var文件夹的权限为777。使用ssh在根目录下运行以下代码。

chmod -R 777 var

静态文件夹许可为777。使用ssh在根目录中的以下代码运行。

chmod -R 777 pub/static

媒体文件夹的权限为777。使用ssh在根目录中的以下代码运行。

chmod -R 777 pub/media

2
以上不是OP的要求,这是针对Magento 2.x而非Magento 1.7的
-Frank Groot

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.