2013-07-30 58 views
0

我已经设置了一台ec2机器来运行应用程序。为了使我的部署脚本能够工作,我需要我的部署用户(ec2-user)具有对某些目录的写入权限。我不熟悉linux/unix命令。我正在寻找使用Google的方法。Linux Group权限

所以问题目录是/ home/ec2-user/uc_social_server/releases。该目录由Capistrano脚本创建,无论出于何种原因,它使root成为发行版目录的所有者,即使脚本以ec2用户身份运行。一个ls -l命令显示的根源是所有者,并且所有者和组都具有RWX访问: enter image description here

我的脚本失败,因为它试图写入释放目录EC2用户,但没有许可。

我想如果我创建一个名为deployers的组,并将ec2-user和root两者都加入到这个组中,那么ec2-user将对此目录拥有rwx权限,因为ec2-user将属于与root相同的组,这个目录的权限是rwx。但那并不奏效。

应该有效吗?如果不是原因(我对群体权限的理解可能完全错误)?

我该如何给ec2用户rwx访问这位导演?

谢谢。

回答

1

运行:

sudo chown -R ec2-user releases ; sudo chgrp -R ec2-user releases 

,或者如果你想离开所有者和组为root,那么你可以尝试运行此:

sudo chmod -R o=rwx releases 

阅读精细的手工的更多信息,chmodchgrpchown

+0

你能解释一下这些命令在做什么吗?谢谢! – septerr

+0

'chown'更改谁是给定文件的所有者。 'sudo'可以让你运行命令,就好像你是'root'一样。 'chgrp'更改给定文件的组所有权; 'chmod'改变给定文件的权限或'访问模式'。将'-R'传递给这些程序会使它们以递归方式进行操作,就像递归地更改整个目录的权限一样。这些程序需要以下参数:'命令行开关(例如'-R')'user | group | mode''文件|目录' –

+0

谢谢!我应该阅读手册页,而不是让你解释它。对不起〜 – septerr

1

的Unix规则#1)不要使用root白白

我建议你只是sudo来根,你希望它是

什么目录的所有者和组更改为
  • 人CHOWN
  • 人chgrp命令