EC2用户权限

时间:2014-12-22 22:49:23

标签: amazon-web-services amazon-ec2 permissions

我刚刚设置了我的第一个AWS EC2服务器实例,并且我遇到了上传图片的脚本权限问题。 '无功/网络' (以及所有子目录)所有者是' ec2-user'但是apache服务器正在运行为“apache”#。 因此,php脚本动态创建的所有目录(使用mkdir)都有' apache'作为所有者(它似乎没有写入权限) 我当然可以将apache用户改为' ec2user'但我担心这可能会带来安全风险。这样做的正确方法是什么? 谢谢你的帮助。

3 个答案:

答案 0 :(得分:6)

设置Apache Web服务器的文件权限

1-使用以下命令将www组添加到EC2实例:

[ec2-user ~]$ sudo groupadd www

2-将ec2-user用户添加到www组:

[ec2-user ~]$ sudo usermod -a -G www ec2-user

3-要刷新您的权限并添加新的www组,请注销:

[ec2-user ~]$ exit

4-再次登录并验证www组是否存在以及组:

[ec2-user ~]$ groups
> ec2-user wheel www

5-将/var/www目录及其内容的组所有权更改为www组:

[ec2-user ~]$ sudo chown -R root:www /var/www

6-更改/var/www及其子目录的目录权限,以添加组写权限,并在将来创建的子目录上设置组ID:

[ec2-user ~]$ sudo chmod 2775 /var/www
[ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} +

7-递归更改/var/www目录及其子目录中文件的权限,以添加组写权限:

[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} +

答案 1 :(得分:4)

这是一个纯Linux权限问题,而不是AWS问题。 我刚刚在/ var

中创建了一个Amazon Linux实例并验证了权限
 [ec2-user@ip-1-1-1-174 ~]$ ls -ald /var/www
 drwxr-xr-x 7 root root 4096 Oct 22 23:34 /var/www

如您所见,所有权为root而非ec2-user。您应该首先了解/var/www/ec2-user

的权限/原因

需要再次更改该目录的所有者,您可以输入:

 chown -R root:root /var/www

最佳做法是让您的Web服务器(httpd)写入/var/www,也不要使用提升的权限(例如root)运行该进程。 如果您的应用程序真的写入本地存储,请使用安装在单独目录中的其他卷,其中没有可执行文件可用。

答案 2 :(得分:0)

如果您使用的是 Amazon Linux 2 AMI ,则步骤会有所不同

要允许ec2-user帐户操作此目录中的文件,必须修改目录的所有权和权限。有很多方法可以完成此任务。在以下步骤中,将ec2-user添加到apache组中,以授予apache组对/ var / www目录的所有权,并为该组分配写权限。

设置文件权限

将您的用户(在本例中为ec2-user)添加到apache组。

[ec2-user ~]$ sudo usermod -a -G apache ec2-user

注销,然后再次登录以选择新组,然后验证您的成员身份。 注销(使用exit命令或关闭终端窗口):

[ec2-user ~]$ exit

要验证您在apache组中的成员身份,请重新连接到您的实例,然后运行以下命令:

[ec2-user ~]$ groups
ec2-user adm wheel apache systemd-journal

将/ var / www的组所有权及其内容更改为apache组。

[ec2-user ~]$ sudo chown -R ec2-user:apache /var/www

要添加组写权限并在以后的子目录上设置组ID,请更改/ var / www及其子目录的目录权限。

[ec2-user ~]$ sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;

要添加组写权限,请递归更改/ var / www及其子目录的文件权限:

[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;

现在,ec2-user(以及apache组的任何将来的成员)可以在Apache文档根目录中添加,删除和编辑文件,从而使您可以添加内容,例如静态网站或PHP应用程序。

如何设置Amazon Linux 2 LAMP,完整详细信息在这里 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html