我按照本教程安装了 vsftpd:https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html
设置顺利,我能够按预期使用本地用户凭据进行连接。但是,我在目录列表和权限方面遇到了问题。
如果我不使用 chroot_local_user 将本地用户限制在他们的主目录中,他们就能够浏览整个文件系统,直至最深的 /dev 文件夹。
另一方面,当我尝试启用 chroot_local_user 指令时,用户确实被限制在其主目录中,但初始远程目录是根分区。列出除用户主目录之外的任何目录都会引发授权错误。
我已经检查了 vsftpd 的配置,但似乎没有什么能满足我的要求。
我不明白的另一件事是,如果软件包安装不使用 /home/ftp 目录,为什么还要创建它。
编辑:我注意到 vsftpd 正在以 root 身份运行..这是预期的行为吗?
答案1
确保未设置 local_root:
local_root
This option represents a directory which vsftpd will try to change into after
a local (i.e. non-anonymous) login. Failure is silently ignored.
Default: (none)
此外,此选项可能也有用:
passwd_chroot_enable
If enabled, along with chroot_local_user , then a chroot() jail location may
be specified on a per-user basis. Each user's jail is derived from their home
directory string in /etc/passwd. The occurrence of /./ in the home directory
string denotes that the jail is at that particular location in the path.
Default: NO
然后您可以添加/home/user/./
到 /etc/passwd 文件中。
最后,创建 ftp 用户用于匿名登录:
ftp_username
This is the name of the user we use for handling anonymous FTP. The home
directory of this user is the root of the anonymous FTP area.
Default: ftp