文件权限; 我的www文件夹内容应该由www-data拥有吗?

9 php security permissions webserver

这可能是一个菜鸟问题,但无法在任何地方找到答案.

我有一个问题,另一个文件权限问题帮助我ALMOST解决.

我在linux(danny)中创建了一个具有sudo访问权限的用户.我还创建了一个新组,名称ALSO是danny,并将用户danny添加到该组.该组具有sudo(root)访问权限.

我拥有danny/danny group拥有的www文件夹中的所有文件和文件夹.

我有一个图像上传代码,这是PHP.此代码无法将图像上传到名为" images "文件夹的文件夹,该文件夹位于www文件夹下,除非我赋予images文件夹777权限.

所以,我已经按照链接问题的答案,并已经发现上传脚本运行的用户是" www-data ".

根据我发布的另一个问题的链接上的答案,我需要将www-data添加到一个组...但我被困在这里......

我应该添加哪个组?我该怎么办?

任何提示都表示赞赏.

顺便说一句,这里有一些关于www-data和danny的信息

  id www-data:
  uid=33(www-data) gid=33(www-data) groups=33(www-data)
  id danny
  uid=1000(danny) gid=33(www-data) groups=33(www-data)
Run Code Online (Sandbox Code Playgroud)

谢谢,如果您需要更多输入,请告诉我...

Dav*_*man 18

在一般情况下,NO,你的内容应该被www数据拥有.应该由www-data拥有的唯一内容是您需要Web应用程序能够修改的特定文件以及他们需要能够创建或删除文件的特​​定目录.其余的不应该被拥有(或者可写) )通过www-data,因为www-data可以写入的每个文件都是一个文件,攻击者破坏你的web服务器(包括它运行的任何脚本或web应用程序)将能够替换他可能选择的任何恶意数据.

特别重要的是,www-data 拥有或能够写入任何可执行文件(例如,脚本,flash文件,Word中的文档或具有宏功能的其他格式等),因为用恶意可执行文件替换它们将提供一个简单的攻击用户计算机或Web服务器本身的方法.


Kon*_*rak -2

实际上,您的问题是您需要用户www-data对图像文件夹具有写入权限。

您可能还希望用户danny也拥有该文件夹的完全访问权限。

编辑:额外的警告: 让您的网络服务器可写的文件始终存在安全风险。请务必检查所编写的文件,并确保人们无法上传或更改代码。摘要: * 不要让您的网络服务器运行可写或可写文件夹中的脚本。因此,请确保只有 images/ 文件夹是可写的,并仔细检查写入的所有内容实际上都是图像!

任何一个:

  1. 将 www-data 设置为文件夹的所有者,并 chmod u+rwx www。
  2. 将 www-data 设置为组 X 的一部分,并将文件夹的所有者更改为 X,然后 chmod g+rwx www。
  3. 在服务器上设置文件夹为全局可写(在某些情况下,这也是一个可接受的解决方案,但安全性较低)。

  • -1 Web 应用程序不应对其自己的 Web 根目录具有写入权限,并且在任何情况下该文件夹都不应是全局可写或可读的。这是一个巨大的错误,这真的让我很困扰。 (2认同)
  • @The Rook:你不同意我没有说的事情。引用我自己的话:“世界可读很少是一个问题,**除了包含数据库密码之类的文件**。” 您提到的 php/.htaccess 文件显然是这样的文件,因此根据我之前的评论,应该不是世界可读的。 (2认同)