符号链接目录的权限问题

符号链接目录的权限问题

我有一个在 Ubuntu 14.04 上运行的 Web 应用程序。将应用程序部署到我在 AWS 上的服务器时,应用程序的部署服务会自动创建单独的用户、组和权限。

该应用程序以名为 的用户身份运行nginx,该用户是也称为 的组的一部分nginx。当我 ssh 登录时,我必须以另一个用户的身份执行此操作:michaelmichael。我不是该nginx团体的成员。

该应用程序有一个/tmp/cache目录,我必须能够以michaelmichael用户身份写入该目录,以便手动初始化某些设置。当我尝试这样做时,我收到“权限被拒绝”错误。

我的下一步是检查该文件夹的权限。事情开始变得混乱。该目录是符号链接的,以便它可以引用应用程序的多个迭代。因此,例如,我尝试写入的实际目录是/var/deploy/my-app/web_head/releases/20150221204050/tmp/cache如果我ls -l在此目录上,我会得到以下内容:

lrwxrwxrwx 1 nginx nginx 43 Feb 21 20:40 /var/deploy/my-app/web_head/releases/20150221204050/tmp/cache -> /var/deploy/my-app/web_head/shared/cache

如果我ls -l /var/deploy/my-app/web_head/shared可以看到这cache是一个具有以下权限的目录:

drwxrwxr-x 14 nginx nginx 4096 Feb 21 20:31 cache

那么,为了写入此目录,我是否需要将我的用户添加michaelmichael到 nginx 组中?我是否需要修改符号链接目录( /releases/dir)或目录本身( dir)的权限cache

答案1

显而易见的答案有时就是正确的。需要对cache目录进行写操作,所以需要对该cache目录有写权限。您能够执行此操作的事实ls -l表明您拥有该目录的所有必要访问权限releases

您可以通过将用户添加到nginx组或更改目录模式cache(可能更改为 777)来获得所需的访问权限。

相关内容