适当的linux权限的图像上传,以允许删除和重新上传

我应该设置什么样的权限,以及如何允许apache覆盖上传的图像,删除它们并重新上传它们,以及允许将基础文件夹的权限传递给新上传的文件(如果这是正确的方法)?

我的图片直接是,例如:/ images / subset1 / / images / subset2 / / images / subset3 /

相当标准,图像上传到每个子集文件夹。

为了使Apache能够读写目录,该目录必须是:

  • 由用户apache拥有,模式7xy(6xy为文件); x和y都可以是零;

要么

  • 由另一个用户拥有,但组的所有权与Apache相同,模式x7y或x6y(x通常是2 =文件写入和4 =文件读取的总和,因此6和1 =目录扫描,因此7为目录)

要么

  • 由不同于Apache的用户拥有,这个用户组与Apache的不同,而且模式为xy6或xy7。 这意味着该文件可以由绝对的任何人写入,因此是一个坏主意 。 尝试将文件所有权更改为上述更合理的情况之一。

要更改权限 ,您需要具有文件/目录的所有权。 然后,您可以通过shell(chmod命令)或通过FTP更改权限。 要更改所有权,您必须是超级用户,超级用户,并且不能通过FTP执行此操作,需要某种shell访问权限才能运行chown实用程序或某些GUI变体。

我认为最好的select是保留非Apache用户拥有的文件和目录,除了4(读取)+ 1(= 5)目录以外,没有访问权限。 然后在一组有限的特殊目录中,拥有Apache的所有权和权限600(文件)和700(子目录)。 如果可能的话,configurationWeb服务器(PHP,Python等)不要从可写区域解释文件。 在那里,Apache将能够写入所有内容,但不能执行它。

这是因为让Apache可写的所有文件都可能允许某人上传可执行代码,从而“订购”服务器来做一些你不喜欢的事情(发送垃圾邮件,升级权限,运行端口扫描和僵尸networking)。 如果希望写文件的可能性,应该阻止这些文件被运行。