我有一个运行 apache2 的 Ubuntu 14.04 服务器
如果我通过 SSH 登录,我可以在 /var/www/html 中创建一个目录和文件,并且它们会得到适当的服务。
如果我使用我设置的用户进行 FTP(其“主页”我设置为 /var/www/html)- 我无法创建目录或上传文件。如果我让该 FTP 用户成为 HTML 目录的所有者 - 我就可以创建目录并上传文件,但它们不会得到服务。相反,我收到 403 错误,指出这是禁止的。
所以,我很确定这是一个权限问题,但我不想通过 SSH 完成所有操作来创建目录和页面。我再次让 /var/www/html 成为 root 所有者,以避免出现任何问题。
那么 - 创建有权创建目录并通过 FTP 上传文件的 FTP 用户(例如名为 FTPUser)的最佳过程是什么?我已经创建了该用户 - 但我对 Ubuntu 比较陌生,不熟悉“最佳实践”,这是一个面向世界的服务器,因此我不在家时也可以访问它 - 所以我不想要轻松地授予完全访问权限。
我将是唯一访问该服务器的人 - 所以实际上我只需要一个可以通过 FTP 访问并在 /var/www/html 中创建/删除/编辑内容的用户
答案1
403很可能是因为FTP上传创建的文件的权限问题;它们可能无法被“其他”读取,并且由网络服务器进程不属于的组所拥有。
有多种方法可以解决此问题,其中最简单的方法是将 FTP 用户的主要组设置为“www-data”。然后,作为该用户上传的任何文件都应该可以被网络服务器读取。
或者,您可能会发现 FTP 服务器配置了“umask”,防止设置“其他”位,并将其更改为 022 之类的内容将意味着上传的文件将保留“其他”的潜在 rx 位。
第二个问题是 FTP 的总体安全性(即纯文本密码);我建议您尝试使用带有 ssh-keys 的 SFTP,这样更安全。组/权限问题可能保持不变,并且需要相同的解决方案