【发布时间】:2021-09-25 05:02:47
【问题描述】:
我正在运行一个默认的 t2.nano ec2 linux ami。它没有任何改变。我正在尝试将我的本地更改同步到服务器。有一个权限问题,我不太了解如何解决。
我的结构如下。我正在尝试将我的工作推送到技术目录。技术目录映射到暂存域。即 technology.staging.com
:/var/www/html/technology
这是从根开始的,它工作正常,是 rsync 失败了。
当我在本地推送到该目录时,我收到“失败:权限被拒绝 (13)”错误。
我正在运行一个 nginx 服务器,并为 www 目录分配了如下权限:
sudo chown -R nginx:nginx /var/www
我的用户是 ec2-user,这是正常的默认值。这是我被绊倒的地方。您可以看到var 目录被授予root 访问权限。
您可以看到www 目录的权限设置为nginx,因此我们的服务器可以访问这些文件。我相信我需要将 ec2-user 以及 nginx 用户添加到此目录,以便我可以在那里 rsync 我的文件并且服务器仍然可以访问我只是不确定如何做到这一点。
作为测试,我在这个位置创建了一个test 目录,它运行成功。
:/home/ec2-user/test
你可以看到这里的权限是为ec2-user 设置的,这就是我确定它有效的原因。
这是我在本地机器上运行的命令,用于 rsync 失败的文件。
rsync -azP -e "ssh -i /Users/username/devwork/company/comp.pem" company_technology/ ec2-user@1.2.3.4:/var/www/html/technology
这是有效的命令。
rsync -azP -e "ssh -i /Users/username/devwork/company/comp.pem" company_technology/ ec2-user@1.2.3.4:/home/ec2-user/test
我已经做了足够的研究和测试,知道这是一个权限错误,我只是想不出解决它的正确方法。我是否需要创建一个组并将nginx 和ec2-user 分配给该组,然后在:/var 目录上为该组赋予相同的权限级别。
旁注,我为 chown 设置了哪些权限级别才能获得当前设置的这些权限?
我在:/etc/nginx/conf.d/ 目录中有服务器配置文件,这些文件映射到我在:/var/www/html 目录中创建的目录,因此我可以在服务器上托管多个站点。
所以在这个例子中,我在:/etc/nginx/conf.d/technology.conf 有一个配置文件,它映射到:/var/www/html/technology 的目录
再次提前谢谢你,我确实觉得我已经付出了研究和努力,以表明我已经做到了我所知道的。
【问题讨论】:
标签: linux amazon-web-services nginx amazon-ec2