AWS Amazon Linux EC2 实例:apache 用户权限被拒绝写入目录

Posted

技术标签:

【中文标题】AWS Amazon Linux EC2 实例:apache 用户权限被拒绝写入目录【英文标题】:AWS Amazon Linux EC2 Instance: apache user permission denied for write to directories 【发布时间】:2015-01-21 18:52:40 【问题描述】:

尝试写入 apache 用户和组的 system/cache 目录时出现权限被拒绝错误(通过 Web 浏览器从 HTTP :80 调用)

我的文件夹权限设置如下:

[ec2-user@ip-172-31-45-8 system]$ ls -lah
total 48K
drwxrwsr-x 10 ec2-user www 4.0K Nov 24 05:05 .
drwxrwsr-x  7 ec2-user www 4.0K Nov 24 04:59 ..
drwxrwsr-x  2 ec2-user www 4.0K Nov 24 05:05 cache
drwxrwsr-x  2 ec2-user www 4.0K Nov 24 04:03 database
drwxrwsr-x  2 ec2-user www 4.0K Nov 24 04:03 engine
-rw-rw-r--  1 ec2-user www  924 Nov 24 04:03 file_merge.php
drwxrwsr-x  2 ec2-user www 4.0K Nov 24 04:03 helper
drwxrwsr-x  2 ec2-user www 4.0K Nov 24 05:02 library
drwxrwsr-x  3 ec2-user www 4.0K Nov 24 04:53 plugins
-rw-rw-r--  1 ec2-user www 3.3K Nov 24 04:03 startup.php

Apache 组是这样设置的(我意识到将 apache 设置为根组不是一个好主意,但出于测试目的......):

[ec2-user@ip-172-31-45-8 system]$ groups apache
apache : www root wheel ec2-user apache

[ec2-user@ip-172-31-45-8 system]$ groups ec2-user
ec2-user : ec2-user wheel apache www

我有一个脚本尝试写入system/cache/ 目录,对于ec2-userwww,该目录的权限设置为rwx。 Apache 配置为使用:

User apache;
Group apache;

将配置更改为使用 www 组可以解决问题,但我很困惑为什么我无法使用组 apache 让它工作??

User apache;
Group www;

我不了解小组在 linux 上的工作方式吗?

【问题讨论】:

【参考方案1】:

我不是精通 Linux 或 AWS 的用户,但请尝试将 apache 用户添加到 www 组:

sudo usermod -a -G www apache

然后重启apache:

sudo service httpd restart

sudo service apache2 restart

然后确认 apache 是 www 组的一部分

grep 'www' /etc/group

这似乎解决了我的问题。仅供参考,我在these instructions 之后设置了我的 EC2 服务器。

【讨论】:

以上是关于AWS Amazon Linux EC2 实例:apache 用户权限被拒绝写入目录的主要内容,如果未能解决你的问题,请参考以下文章

需要 AWS Windows EC2 实例的有效证书。 Amazon Certificate manager 是不是为 EC2 提供证书?

为EC2 Amazon Linux实例设置SFTP Sublime Text 3

aws账户停用,实例未停用,怎么办

在 Amazon EC2 AWS 上更改实例类型后会出现啥问题?

在 AWS 上托管多个网站 - Amazon Linux EC2

如何在 AWS Lambda 中使用 Node.js 列出我的所有 Amazon EC2 实例?