/vol/www 在 ubuntu 网络服务器上有什么权限?

/vol/www 在 ubuntu 网络服务器上有什么权限?

我们正在 ubuntu 10.04 服务器上部署 rails 应用程序。执行 cap deploy:setup 时,出现以下错误:

  * executing "mkdir -p /vol/www/myapp /vol/www/myapp/releases /vol/www/myapp/shared /vol/www/myapp/shared/system /vol/www/myapp/shared/log /vol/www/myapp/sha
red/pids"
    servers: ["11.15.69.45"]
Password:
    [11.15.69.245] executing command
*** [err :: 11.15.69.45] mkdir: cannot create directory `/vol/www/myapp/releases'

ls -ld /vol/www 的输出是:

drwxr-xr-x 3 root root 4096 2011-11-22 04:35 /vol/www

我们需要在 Web 服务器上分配什么样的附加权限,以及这些权限需要分配给哪个子目录?

答案1

您的问题似乎有些令人困惑。Andrew 的回答解决了这个问题:“Web 服务器是否具有适当的权限来直接写入您要部署到的服务器?”

然而,你实际上在早期阶段遇到了问题:将代码部署到服务器。在这个阶段,网络服务器可以写入 /vol/www,但你连接时所用的用户当您部署代码时,有权写入该目录。

安德鲁的解决方案基本上仍然适用,但略有不同。

我建议采用以下方法之一:

  1. 由于您已经设置/vol/www为可由组进行组写www-data,因此您只需将您的用户添加到该组即可:

    sudo usermod -aG www-data your-username
    
  2. 或者,您可以让自己成为所有者,并以此方式授予自己访问权限。由于您已经为 Web 服务器设置了组访问权限,因此更改目录的所有者不会造成后续问题。

    sudo chown your-username /vol/www
    

这两个选项都应该给你的用户适当的访问权限来部署代码,并且还保留 Web 服务器对该目录的访问权限。

答案2

Ubuntu 中的 Web 服务器用户是 www-data(除非您使用 mod_suexec 运行)。因此 www-data 需要对 /vol/www 具有写入权限。一种方法是让 www-data 成为所有者:

chown www-data /vol/www

或者您可以使用群组所有权和权限:

chgrp www-data /vol/www
chmod g+w /vol/www

第三种方式是使用 ACL:

setfacl -m u:www-data:rwx /vol/www
getfacl /vol/www   # to see the ACL grant

相关内容