如何给apache用户写权限

如何给apache用户写权限

我是服务器管理的初学者。

我正在使用 class.upload.php 库,以便用户可以从我的网站上传文件。为此,我给出了一个完整路径,例如: uploads/gifs/90/x.gif 该路径在我的服务器上不存在,但我想创建它。

我的 php 日志返回给我:PHP Warning: mkdir (): Permission denied

如果在我的服务器上以 root 用户身份创建具有权限的上传文件夹777,则库在上传文件时会正确创建路径的其余部分。用户 apache 拥有 gifs/90/x.gif

从上面可以看出,apache用户对html文件夹没有写权限。在etc/groups中我看到apache属于该组: nagcmd: x: 503: nagios, apache

服务器上的 web 文件夹具有以下权限: drwxr-xr-x 32 root root 4096 Feb 4 17:20 html

我希望库能够自动在 html 文件夹中创建目录。最好的方法是什么?

  1. 在html/中给其他人分配写权限: drwxr-xr-wx 32 root root 4096 Feb 4 17:20 html

  2. 仅向 nagcmd 组授予权限,以便它可以写入 html/ (我不知道该怎么做)

  3. 其他的

我不想损害网络的安全。

预先非常感谢

答案1

这将取决于您的系统。但很可能您有一个名为 的用户和组www-data,服务器以该用户和组运行。

CAP_CHOWN只有您有能力(您是 root)才能更改用户。您可以将文件添加到组中www-data,但您必须先要求管理员将您添加到该组中。

如果您没有能力CAP_CHOWN,那么您可以使用文件访问控制列表。

setfacl -R -m "g:www-data:rwX" "directory-name"

您可能需要为文件系统启用访问控制列表。但这是最安全的方式,因为它不需要提升权限(除了在 FS 上一次性启用)。

相关内容