繁体   English   中英

带有 rsync 的 Linux AWS EC2 权限

[英]Linux AWS EC2 Permissions with rsync

我正在运行默认的 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用户添加到该目录,以便我可以在那里同步我的文件,并且服务器仍然可以访问我只是不确定如何做到这一点。

作为测试,我在此位置创建了一个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

我已经做了足够的研究和测试,知道这是一个权限错误,我只是想不出解决它的正确方法。 我是否需要创建一个组并将nginxec2-user分配给该组,然后在:/var目录上为该组提供相同的权限级别。

旁注,我为 chown 设置什么权限级别才能使当前设置的这些权限?

在此处输入图片说明

我在:/etc/nginx/conf.d/目录中有服务器配置文件,这些文件映射到我在:/var/www/html目录中创建的目录,因此我可以在服务器上托管多个站点。

所以在这个例子中,我在:/etc/nginx/conf.d/technology.conf有一个配置文件,它映射到:/var/www/html/technology

再次感谢您,我确实觉得我已经进行了研究和努力,以表明我已经尽我所能。

在我玩了大约一天之后,答案是有道理的。 您必须同时授予ec2-usernginx组的访问权限。 我相信你永远不想把用户放在一个涉及服务器本身的组中,我认为事情会往南走。

将所有者更改为ec2-usernginx组后,它仍然没有完全按照我想要的方式工作。 原因是,我需要将nginx权限更新为他们被分配用户角色时所拥有的权限。

基本上, ec2-user有写权限,而服务器没有。 我们希望用户拥有写权限,以便他们可以将我的本地文件 rsync 到服务器上的目录,并且nginx组需要相同级别的权限来显示页面。 现在想来, nginx组可能只需要读取权限就可以显示内容,但这至少暂时解决了问题。

这是我在服务器上运行的用于更新所有权和权限以及输出的命令。

修改所有权

sudo chown -R ec2-user:nginx :/var/www/html/technology

修改权限

sudo chmod -R o=rwx,g+rwx,ow technology

最终结果看起来像这样

在此处输入图片说明

您可以看到权限匹配,并且所有权符合我们的预期。 我唯一需要弄清楚的是在将新文​​件rsync到服务器之后,我需要运行以前的代码来再次更新权限。 我相信稍后会来找我,但我希望这可以帮助处于相同情况的任何人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM