我刚刚成功设置了一个本地用户,让他可以访问 FTP,并拥有自己的主文件夹,然后切换到该文件夹,但他询问是否有办法让该文件夹 (/home/username) 的所有者可写,而 apache 则可以让其他人可读?这样,同一栋楼里的其他人就可以使用标准 http 协议下载文件,但只有所有者可以通过 FTP 上传。
例如,本地用户将一个 zip 文件发送到他的家庭位置(/home/user),并且大楼内的某个人使用 http://domain 打开该位置,看到该文件并单击它进行下载,但所有者可以随时替换该文件,以进行更新等。
我已经设置了 apache 指令以允许所有访问、跟踪符号链接和创建目录列表,但是当在浏览器中输入 URL 时,只显示“您无权访问此位置”,我尝试了几乎所有可能的方法,我甚至尝试将用户添加到 apache 使用的 www-data 组,基本上所需要的是用户通过 FTP 上传,然后任何人都可以查看列表并从该位置下载。
我认为这是可能的,但如果不可能,那么 Web 开发人员如何使用 FTP 上传来更新他们的网站,而每个人仍然可以看到该网站?
答案1
但他问是否有办法让该文件夹(/home/username)为所有者可写,并且为 apache 可读?
请不要弄乱 home 的权限。如果您想走这条路,请使用专用分区并在那里更改权限。这样更安全。我曾让 Windows 用户删除 .profile 和 .bash* 等隐藏文件因为他们没有亲自把它们放在那里
网站开发人员是否使用 FTP 上传来更新他们的网站,但每个人仍然可以看到该网站?
一般来说我建议不要这样做。更安全的方法:
- 让开发人员上传文件到主目录(每个开发人员都有自己的主目录,以便您可以跟踪更改)。
- 让一项工作(cron/systemd/directory watcher)检查新文件。
- 作为一项额外功能:使用开发人员的用户名作为备份的一部分,对您想要更新的网站文件进行备份。
- 让该作业将文件从开发人员主页复制或移动到网络服务器,将用户、组和权限更改为网站设置。
- 你确定是 www-data 吗?现在应该是 apache/apache。
- 这样,您可以随时恢复以前的状态,而无需所有开发人员都进行备份(他们可以出于自己的目的)。
如果您仍然希望他们直接更新文件。
- 创建一个大家都可以用来登录服务器的用户。
- 将 apache 用户和组设置为同一个用户
- 让他们使用该用户上传文件。
... 并始终使用私钥:)