我为多个网站管理员创建了一个系统,用于存储和服务他们的网站。他们有自己的 Linux 帐户和主目录。他们的 public_html 文件夹通过命令链接ln -s
到网络服务器 html 目录/usr/share/nginx/html/
,因此它们在互联网上可见。
但用户可以查看其他用户的主文件夹。我想阻止他们查看不属于他们的文件夹。
如何获取?
这是用户的权限信息。
abc@localhost:/home/gameboy$ sudo namei -mo /home/abc/public_html/info.php
[sudo] password for abc:
f: /home/abc/public_html/info.php
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxr-xr-x abc abc abc
drwxr-xr-x abc abc public_html
-rw-r--r-- abc abc info.php
abc@localhost:/home/gameboy$ id abc
uid=1002(abc) gid=1002(abc) grupy=1002(abc),27(sudo)
abc@localhost:/home/gameboy$
答案1
我可以看到该用户abc
是该组的成员sudo
。这意味着(至少在 Ubuntu 系统上)该用户能够使用 sudo 执行命令(获得 root 访问权限)。
如果这适用于您所说的所有用户,那么您就无法阻止他们访问其他人的文件。用户可以简单地成为 root 并执行他/她想做的任何事情。
如果我们跳过这一点,则需要设置每个文件/文件夹权限,以便只有用户可读/写,并且只有特定组可读,以便www-data
允许 Web 服务器访问它们(chmod 750
对于文件夹和chmod 740
文件)。