我陷入困境。我整天都在努力寻找自己做错的地方,但却屡屡碰壁。
我正在尝试做的事情: 以这样的方式设置 FTP,使得某些用户只能访问他们的目录,但更高级别的用户可以访问所有目录。
到目前为止我已在 Google 上搜索过的内容: 我开始这,但这并没有达到我想要的效果。然后我用这,但一旦我创建了一个用户,它就不允许我创建另一个用户。最后,我决定遵循这,但它甚至不允许我创建一个用户。
我正在使用 Ubuntu 10。我可以以 root 用户身份登录 ftp,它会带我进入主目录。如果我尝试使用我在教程中创建的用户登录,它会显示:
Status: Connection established, waiting for welcome message...
Response: 220 (vsFTPd 2.2.2)
Command: USER mathew
Response: 331 Please specify the password.
Command: PASS ****
Response: 530 Login incorrect.
Error: Critical error
Error: Could not connect to server
编辑:我仍然无法理解 FTP 的 CHROOT。我读过的每个教程看起来都完全不同,让我做不同的事情。我读过的关于 VSFTP 的每个教程也让我做不同的事情。我以为使用 Linux 会更容易配置和设置,但到目前为止,我一直在努力解决一些应该简单的事情。设置整个 LAMP 堆栈比 FTP 更容易。叹抱歉,我发牢骚了。
答案1
除非有非常特殊的原因,否则不要使用ftp
。它不安全且功能有限。
如果您仍想继续,您正在寻找的信息称为“chroot”,这是非常有可能的,但您可能不会在 ftp 文档中找到它。从 Google 中的以下内容开始: chroot an FTP user
如果您要切换到ssh
可以使用的位置sftp
,并且知道需要做什么,则可以在大约 5 分钟内设置 chroot 环境。继续阅读以了解更多信息!
以下信息来自http://www.debian-administration.org/articles/590
子系统 sftp 内部 sftp
您需要配置 OpenSSH 以使用其内部 SFTP 子系统。这需要在/etc/ssh/sshd_config
Subsystem sftp internal-sftp
sshd_配置
必须在 Match 段内指定 Chroot 环境。
匹配组 sftponly Chroot目录 /home/%u X11转发否 AllowTcpForwarding 否 ForceCommand 内部 sftp
请注意ChrootDirectory
已指定 以及ForceCommand
。
权限说明
用户的主目录必须由 root 拥有!这不是可选的。不仅如此,它还必须不能由除 root 之外的任何用户写入。主目录和所有父目录都具有相同的限制。
drwxr-xr-x 21 root root 4096 1 月 1 日 12:51 / drwxr-xr-x 16 root root 4096 1 月 15 日 14:26 /home drwxr-xr-x 3 root root 4096 1 月 15 日 14:27 /home/chroot drwxrwxrwx 2 chroot chroot 4096 1月15日 14:27 /home/chroot/upload
/home/chroot
请注意,即使所有者(名为 的帐户)也无法写入用户主目录 ( ) 的权限chroot
。我创建了一个允许修改的上传目录作为示例。在此设置中,用户chroot
没有对其自己的主目录的写访问权限。这是有意为之,也是 sftp chroot 所必需的。同样,所有父目录都必须具有类似的权限。
答案2
因此,回答我自己的问题...我使用了一个更简单的 FTP 应用程序。 http://www.flynsarmy.com/2010/11/lazy-mans-guide-to-chroot-jailed-ftp/
快,粗略。它不是 SFTP 或 FTPS 或通过 SSH 隧道的 FTP,但它是我所要求的,而且它工作得很好。