我是一名 Web 开发人员。我允许几个人通过 SSH 访问我的计算机。
我想确保他们无法访问我的文件/var/www/
。
那么,是否可以使这些文件仅对 Web 服务器可读,并授予 root 用户读/写权限?
答案1
我假设 Apache 用户名为www-data
。如果您希望 中的文件/var/www/
仅可由此用户读取,则需要授予其所有权:
sudo chown -R www-data /var/www/
现在您想www-data
成为唯一可以实际读取/写入这些内容的用户:
sudo chmod -R 700 /var/www/
请注意,root
无论权限如何,始终具有对任何文件的读/写访问权限。无论这种设置是否是个好主意——好吧,我宁愿将这些 SSH 用户 chroot 到他们的主文件夹。请参阅我可以创建一个只能访问特定目录的 SSH 用户吗?
答案2
取决于您的 Web 服务器的用户(通常是 www-data):
chown www-data /var/www
chmod -R 700 /var/www
这会将 www-data 用户设置为 /var/www 目录的所有者,并且只允许所有者访问该目录。
答案3
您可能希望将 root 或其他用户设为您的 Web 内容的所有者。这样可以防止 Web 服务器在有人通过脚本或其他入口点获得访问权限时覆盖内容。将root
这些命令中的用户替换为您希望拥有内容的任何用户。
chown -R root:www-data /var/www
chmod 2750 /var/www
为了允许user
(除 root 之外)用户维护内容,您需要将用户添加到 www-data 组。
adduser user www-data
某些 Web 应用程序可能有一些目录用于写入动态内容。若要允许访问,请将所有者更改为 www-data 或允许组写入。