在 ubuntu 上配置 vsftpd 的问题

在 ubuntu 上配置 vsftpd 的问题

我按照本教程安装了 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 

全部来自http://vsftpd.beasts.org/vsftpd_conf.html

相关内容