我正在学习 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 而不是用户名?这里发生了同样的事情:权限或所有权被分配给不再存在的用户。