网站 PHP 文件的文件所有权和权限

网站 PHP 文件的文件所有权和权限

我正在学习 Linux 服务器的基础知识,所以我还很青涩。

我有一台 Ubuntu 服务器,上面有我继承的网站。出于安全方面的担忧,我决定检查一下网站文件的所有权。

它们都是2016:站点。

如果我运行命令“cat /etc/group | more”,我可以看到该组存在。但是当我运行“lastlog”时,用户 2016 没有出现。

我开始担心 2016 可能是通过网络连接的网络用户的用户名,因此我将测试文件的权限设置为 chmod 600,只向文件所有者授予读取权限。果然,我仍然可以从网络访问该文件。

有人能告诉我这是怎么回事吗?我尝试创建一个新用户并授予他们文件所有权,但是当我从 Web 访问文件时,它要求我让同一个人拥有上游的所有目录。

谢谢

答案1

检查你的 apache 配置,通常在/etc/apache2//etc/httpd/或中/etc/apache,并查看配置中的指令User,如果User是数字 2016,那就是它的设置方式。

您是否知道服务器是否正在运行SELinux或正在进行任何“非标准”配置?

您还可以执行ps aux | grep apache(或grep httpd,里程可能会有所不同)来查看服务正在运行的用户/用户 ID。例如:

www-data 14549  0.0  1.0  23340  9864 ?        S    May17   0:00 /usr/sbin/apache2 -k start

显示我www-data的网站上运行 apache2 的用户。

让我们知道你发现什么。

答案2

2016 是 uid。每个用户帐户都有一个名称(如root)和一个 uid。通常,只有在没有匹配的用户帐户时才会显示 uid。如果文件之前由有效用户拥有,但后来该用户被删除,则会发生这种情况。文件的所有者没有更改,因此现在该文件由不存在的 uid 拥有。

您可能希望将文件的所有权分配给另一个用户(使用chown命令)。有可能您会将其分配给www-data,这是 Apache 常用的用户。但是,这实际上取决于您的站点。

与 Windows 相比,您是否见过文件属性/权限列表显示 GUID 而不是用户名?这里发生了同样的事情:权限或所有权被分配给不再存在的用户。

相关内容