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

时间:2014-11-24 05:33:12

标签: linux apache amazon-ec2 permissions amazon

尝试写入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 Groups就是这样设置的(我认为将apache设置为root组并不是一个好主意,但出于测试目的......):

[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/目录,rwxec2-user的权限设置为www。 Apache配置为使用:

User apache;
Group apache;

Chaning config使用www组修复了问题,但我很困惑,为什么我无法让它与组apache一起工作?

User apache;
Group www;

我不理解群组在linux上的工作方式吗?

1 个答案:

答案 0 :(得分:2)

我不是熟练的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

这似乎纠正了我的问题。仅仅是一个FYI,我在these instructions之后设置了我的EC2服务器。