繁体   English   中英

在EC2上使用Apache时,如何允许我的apache用户上载到用户目录?

[英]How can I allow my apache user to upload to user directory when using Apache on EC2?

我已经设置了一个Amazon EC2实例。 默认情况下,我的apache作为组apache用户apache运行。

我创建了新的ftp用户test并将文件上传到/home/test/public_html 然后,我将虚拟主机DocumentRoot配置为指向我的项目,位于/home/test/public_html

如果目录由用户test拥有,则拒绝在项目中上载:它给出了权限错误。 如果我将目录的所有者更改为apache ,那么它将起作用。

如何赋予apache用户超级用户权限,以允许其上载而不更改目录的所有者?

总是一样的问题。 使用用户ftp上传,但无权访问用户apache。

我使用文件系统扩展ACL解决了该问题。

可以将“默认”用户和/或组放置到新生成的文件中。

您要做的是:

  • 将“ acl”添加到所需文件系统的安装选项中。 (执行此操作之前,请检查内核是否已为posix acl配置!)
  • 使用命令“ setfacl”来设置权限(根据您的发布,您可能需要安装包含“ setfacl”的软件包。)

例:

用户ftp的第一个所有者,因此可以进行上传

# chown ftp:ftp /var/www/server/htdocs
# ls -la /var/www/server/htdocs/
insgesamt 0
drwxr-xr-x  2 ftp      ftp  40 26. Nov 12:40 .
drwxrwxrwt 15 root     root  360 26. Nov 12:40 ..

接下来为用户apache设置默认值

# setfacl -d -m u:apache:rwx /var/www/server/htdocs
# setfacl -d -m g:apache:rwx /var/www/server/htdocs
# getfacl /var/www/server/htdocs
# file: /var/www/server/htdocs
# owner: ftp
# group: ftp
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:apache:rwx
default:group::r-x
default:group:apache:rwx
default:mask::rwx
default:other::r-x

将文件或目录放入此目录后,您将看到您具有对它们的多个访问权限。 但是请记住,这些权限仅授予新文件,不会授予给现有文件。

# getfacl /var/www/server/htdocs/test.txt

# file: /var/www/server/htdocs/test.txt
# owner: ftp
# group: ftp
user::rw-
user:apache:rwx                 #effective:rw-
group::r-x                      #effective:r--
group:apache:rwx                #effective:rw-
mask::rw-
other::r--

当使用'ls -l'时,您会在权限后看到一个'+'来告知acl权限:

# ls -la /var/www/server/htdocs
insgesamt 0
drwxr-xr-x+  3 ftp      ftp   80 26. Nov 12:43 .
drwxrwxrwt  15 root     root 360 26. Nov 12:40 ..
drwxrwxr-x+  2 ftp      ftp   40 26. Nov 12:43 test
-rw-rw-r--+  1 ftp      ftp    0 26. Nov 12:43 test.txt

我将不惜一切代价避免让apache用户拥有root特权。

这将是一个非常严重的安全性问题 :正是因为服务器可能(更)易受攻击,所以您通常会为其指定一个特定用户(此处为“ apache”用户),在这里您可以仅向服务器真正需要的用户指定特权。服务器运行。

如果Apache用户没有所有正确的权限存在问题,则应通过将相应文件的所有权更改为apache用户来解决这些问题,

chown apache:apache <filename>

或者通过使它们对更多用户可读/可写/可执行,例如使用

chmod 777 <filename>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM