Arb*_*biz 2 permissions amazon-ec2 amazon-web-services
我刚刚设置了我的第一个AWS EC2服务器实例,我遇到了上传图片的脚本权限问题.'var/www'(和所有子目录)所有者是'ec2-user'但是apache服务器正在以'apache'运行.因此,php脚本动态创建的所有目录(使用mkdir)都拥有'apache'作为所有者(它似乎没有写入权限)我当然可以将apache用户更改为'ec2user',但我担心这可能是安全风险.这样做的正确方法是什么?谢谢你的帮助.
Kam*_*mal 10
设置Apache Web服务器的文件权限
1-使用以下命令将www组添加到EC2实例:
[ec2-user ~]$ sudo groupadd www
Run Code Online (Sandbox Code Playgroud)
2-将ec2-user用户添加到www组:
[ec2-user ~]$ sudo usermod -a -G www ec2-user
Run Code Online (Sandbox Code Playgroud)
3-要刷新权限并包含新的www组,请注销:
[ec2-user ~]$ exit
Run Code Online (Sandbox Code Playgroud)
4-再次登录并验证www组是否与组一起存在:
[ec2-user ~]$ groups
> ec2-user wheel www
Run Code Online (Sandbox Code Playgroud)
5-将/var/www目录及其内容的组所有权更改为www组:
[ec2-user ~]$ sudo chown -R root:www /var/www
Run Code Online (Sandbox Code Playgroud)
6-更改/var/www其子目录的目录权限以添加组写权限,并在将来创建的子目录上设置组ID:
[ec2-user ~]$ sudo chmod 2775 /var/www
[ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} +
Run Code Online (Sandbox Code Playgroud)
7-递归更改/var/www目录及其子目录中文件的权限,以添加组写权限:
[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} +
Run Code Online (Sandbox Code Playgroud)
这是一个纯粹的Linux权限问题,而不是AWS问题。我刚刚创建了一个Amazon Linux实例并在/ var中验证了权限
[ec2-user@ip-1-1-1-174 ~]$ ls -ald /var/www
drwxr-xr-x 7 root root 4096 Oct 22 23:34 /var/www
Run Code Online (Sandbox Code Playgroud)
如您所见,所有权root不是ec2-user。你应该了解的第一件事/为什么你看到的权限/var/www/来ec2-user
应该需要再次更改该目录的所有者,您可以输入:
chown -R root:root /var/www
Run Code Online (Sandbox Code Playgroud)
让您的Web服务器(httpd)写入/var/www或以提升的特权(例如root)运行该进程不是最佳实践。如果您的应用程序确实要写入本地存储,请使用安装在单独目录中的其他卷,该目录中没有可执行文件。
如果您使用的是Amazon Linux 2 AMI,则步骤会有所不同
要允许 ec2-user 帐户操作此目录中的文件,您必须修改该目录的所有权和权限。有很多方法可以完成这项任务。在以下步骤中,您将 ec2-user 添加到 apache 组,以授予 apache 组 /var/www 目录的所有权,并为该组分配写入权限。
设置文件权限
将您的用户(在本例中为 ec2-user)添加到 apache 组。
[ec2-user ~]$ sudo usermod -a -G apache ec2-user
Run Code Online (Sandbox Code Playgroud)
注销并重新登录以选择新组,然后验证您的成员资格。注销(使用 exit 命令或关闭终端窗口):
[ec2-user ~]$ exit
Run Code Online (Sandbox Code Playgroud)
要验证您在 apache 组中的成员身份,请重新连接到您的实例,然后运行以下命令:
[ec2-user ~]$ groups
ec2-user adm wheel apache systemd-journal
Run Code Online (Sandbox Code Playgroud)
将 /var/www 及其内容的组所有权更改为 apache 组。
[ec2-user ~]$ sudo chown -R ec2-user:apache /var/www
Run Code Online (Sandbox Code Playgroud)
要添加组写入权限并为将来的子目录设置组 ID,请更改 /var/www 及其子目录的目录权限。
[ec2-user ~]$ sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;
Run Code Online (Sandbox Code Playgroud)
要添加组写权限,请递归更改 /var/www 及其子目录的文件权限:
[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;
Run Code Online (Sandbox Code Playgroud)
现在,ec2-user(以及 apache 组的任何未来成员)可以添加、删除和编辑 Apache 文档根目录中的文件,使您能够添加内容,例如静态网站或 PHP 应用程序。
如何设置 Amazon Linux 2 LAMP,完整详细信息请参见 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html
| 归档时间: |
|
| 查看次数: |
27077 次 |
| 最近记录: |