我正在使用以下目录在 apache - redhat/AWS 上上传 php.ini 照片
drwxrwxr-x 2 user2 user2 4096 Mar 4 08:10 datingPhotoUploads
Apache 以用户 'apache' 的身份运行。
如何授予此文件夹权限,以便用户“apache”可以对其进行写入,但要尽可能安全?
谢谢你
我正在使用以下目录在 apache - redhat/AWS 上上传 php.ini 照片
drwxrwxr-x 2 user2 user2 4096 Mar 4 08:10 datingPhotoUploads
Apache 以用户 'apache' 的身份运行。
如何授予此文件夹权限,以便用户“apache”可以对其进行写入,但要尽可能安全?
谢谢你
通常upload_tmp_dir 是/tmp。此 /tmp 目录作为一些特殊权限 ( chmod 1777),其中真正的特殊权限是1. 这是粘性位。这意味着,对于目录,在该目录中创建的文件只能由文件所有者删除,即使任何其他rwx权利似乎适用于文件。
因此,将上传的文件存储在 apache 用户上传的具有1777权限的临时文件夹中意味着只有 apache 可以删除这些文件。一个很好的起点。
您可以在您的datingPhotoUploads目录中使用此权限。但是您也可以尝试使用目录的组所有权 ( chmod user2:apache; chmod 2770 datingPhotoUploads;) 来管理它。这里 chmod 的 770 部分表示 chmod 部分的用户和组所有者的读写和删除。这2意味着在此目录上创建的每个文件都将具有与该目录相同的所有权,因此user2:apache.
upload_tmp_dir 的主要问题是:
/tmpbut /some/where/datingPhotoUpload,则 apache 必须能够读取/someand的目录内容/some/where。因此,对于所有这些前面的路径,必须为其他人(或者如果 apache 是组所有者,则为组)设置 x 右侧部分。/tmp,该目录可用于您主机上运行的所有 PHP 应用程序。在每个应用程序的基础上更改 upload_tmp_dir 可以限制对其他应用程序的访问,特别是如果您对所有 php 应用程序设置open_basedir限制并且只有当前应用程序允许设置/some/where/datingPhotoUpload。open_basedir上传图片(创建文件)的文件夹应该有-wx权限。只写需要--x(与阅读和执行相同)。
要检查正在运行的用户 php,请使用:<?php echo exec('whoami'); ?>.