【问题标题】:SSH Change ownership of public_htmlSSH 更改 public_html 的所有权
【发布时间】:2016-10-01 17:39:38
【问题描述】:

public_html 的默认所有权是myusername:nobody

drwxr-xr--. 18 myusername nobody       4096 Jun  1 16:06 public_html/

我将其更改为 myusername:myusername,因为我需要使用以下命令访问 public_html 中的文件

# chown myusername:myusername public_html

它奏效了,所有权发生了变化。

现在我无法将所有权改回myusername:nobody。我正在使用这个命令

chown livegiftcard:nobody public_html

它给了我错误

chown:更改“public_html”的所有权:不允许操作

我还用sudochgrp 对此进行了测试,但没有运气。

我也无法运行我的网站。浏览器给我以下错误。

禁止

您无权访问此服务器上的 /。服务器无法 读取 htaccess 文件,拒绝访问是安全的

此外,在尝试访问时遇到 403 Forbidden 错误 使用 ErrorDocument 来处理请求

【问题讨论】:

    标签: .htaccess ssh permissions chown


    【解决方案1】:

    问题: apache/nginx 有一个用户,他需要读取 Docroot 中的文件。默认用户和组是:www-data:www-data。如果您的情况正确,我不是用户。

    现在文件归 myusername:myusername 所有,而 apache/nginx 用户可能不在“myusername”组中。所以如果你对linux的权限系统有一定的了解,那么webserver用户就只有每个人都拥有的权限(第三栏)。当组设置为nobody时,文件不属于任何组,每个用户都可以在组权限下进行操作。在您的情况下,我猜该组可以读取所有文件,而其他所有文件都不能。

    你可以做什么: 授予所有其他人阅读文件的权利

    chmod -R o+r public_html
    

    现在每个人,包括网络服务器用户都可以读取文件,您将不会收到 403 错误。 -R 用于递归,因此 public_html 下的每个文件和目录也将获得可读标志。

    另一件事是将 webserver 用户添加到组“myusername”中,以便 webserveruser 也可以使用组权限。

    我想到的第三种也是最后一种可能性是将组更改为“nogroup”而不是“nobody”,因为nobody 是用户并且nogroup 组。

    【讨论】:

      猜你喜欢
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 2018-03-29
      • 2010-09-21
      • 2012-09-26
      • 1970-01-01
      相关资源
      最近更新 更多