我应该在Web根目录上设置哪些文件权限?


53

我使用Ubuntu Server 10.10,并已使用安装了Nginx Web服务器apt-get install nginx。它在处创建一个默认网页,/var/www/nginx-default/并且该目录具有权限drwxr-xr-x 2 root root

当我访问默认站点http://localhost/时,页面上会显示此消息403 Forbidden

我应该如何在www根目录上设置文件权限,以便可以安全地访问网页?还是我需要更改其他内容?


注:整个完整路径到您的最终文件夹必须是可访问的!中间甚至没有一个文件夹。
Lucio

Answers:


33

我通常在我的Web根目录上坚持一个755(或rwxr-xr-x),但是我不认为这是您遇到的问题,因为您的目录已设置为该目录。 nginx应该可以访问您的目录。然后,问题就变成了您要访问的文件的权限(或存在)。您的目录中的文件将需要由nginx运行身份的用户读取。我通常将这些文件设置为755(与目录相同)。您可以执行以下操作更改整个目录sudo chmod -R 755 /var/www/nginx-default/

但是,如果目录中没有索引文件,则仍然会出现相同的错误。当您请求未启用目录列表的目录时,将使用索引文件。最常见的索引文件是index.html。可以使用以下方式在您的配置中编辑此默认值:

location / {
    index index.php;
}

如果要nginx为您在该目录中生成文件列表,只需打开目录索引,如下所示:

location  /  {
  autoindex  on;
}

不,我index.html在该目录中。
乔纳斯(Jonas)2010年

那么,您index.html拥有什么权限?
杰克M.10年

谢谢,实际上指向了配置文件,/var/www/并将生成的文件index.html放置在其中,/var/www/nginx-default/因此我必须复制该文件,cp /var/www/nginx-default/index.html /var/www/然后才能使用Web浏览器访问该站点。
乔纳斯(Jonas)2010年

56

我建议将您的webroot的组更改为www-data,nginx和php5-fpm使用的用户。

例如:

sudo chown -R "$USER":www-data /webdirectory
sudo chmod -R 0755 /webdirectory

我的用户是您自己的帐户(您可以使用sudo将文件轻松放入webroot)。


谢谢,执行的命令没有任何问题,但是403 Forbidden使用Web浏览器访问它时仍然可以。
乔纳斯(Jonas)2010年

@Jonas,我建议检查您的nginx错误日志以查看问题所在。
彼得·史密斯

谢谢,我发现了错误,它在错误日志中。请参阅我对Jacks答案的评论。
乔纳斯(Jonas)2010年

4
新文件呢?
mcont 2014年

@MatteoContrini使用,chmod 2755 webdirectory/因此它们以相同的权限和权限存储
rhand
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.