Answers:
我在服务器上执行的操作使用户可以将sftp内容直接发送到/var/www
:
sudo chgrp -R www-data /var/www
sudo usermod -aG www-data $(whoami)
sudo chmod -R 775 /var/www/*
sudo chmod 2775 /var/www
这会将您的用户放入一个在/ var / www及其所有子目录中具有组所有权的组中,递归设置/ var / www中的所有内容以允许您的组进行写访问,并在/ var / www目录中设置setgid位以便以后在/ var / www下创建的所有文件都保持相同的组所有权,而不是将组设置为创建者的主要组。
www-data
。结果,Web服务器脚本的任何妥协都意味着/var/www
可以更改其下的文件。只需更改www-data
为即可web-users
(并首先使用创建该组sudo addgroup web-users
)。
这是一个非常普遍的问题。
显然,您不想以root用户身份运行Web服务器。但是,Ubuntu安装已经以正确的方式完成了。
此外,在apache网站上有一些技巧,说明如何正确配置目录。
关于ftp。您要确保使用的安全ftp服务器不会通过网络以纯文本格式发送用户名和密码。Ubuntu帮助页面提供了有关如何设置此类ftp服务器的教程。
当我只有一台Ubuntu服务器时,有多个用户将该服务器用作Web服务器,因此我删除了该/var/www
目录,因为对我来说- /var/www
是您将Web文件全局放置的位置。我更新/etc/skel
目录,public
并private
使用符号链接添加和文件夹,www -> public
并更新所有虚拟主机DocumentRoots指向/home/<user>/public
。
我看不到/var/www
放置多个用户级文件夹和文件的地方。这就是/home/
目录的目的!它保持路径和目录结构整洁。