是否可以配置 vsftpd 以在登录时将 chrooted 用户 CWD 到子目录?

是否可以配置 vsftpd 以在登录时将 chrooted 用户 CWD 到子目录?

我们有一个系统,可以登录 FTP 服务器(Linux 上的 vsftpd),将文件上传到它所在的默认目录(它不是 CWD),然后退出。出于超出此问题范围的原因,修改 FTP 客户端应用程序以使其更改目录会很麻烦。

执行上传的用户帐户目前尚未 chroot,但我想 chroot 该帐户以提高安全性。但是,根据 vsftpd,顶级 chroot 目录无法写入。将文件放在子目录中是可以的,但客户端应用程序没有登录后更改目录的选项。

考虑到这一点,是否可以将帐户的初始目录设置为除/chroot 之外的其他目录?

我曾尝试使用local_root中的选项vsftpd.conf,但这只是将用户 chroot 到给定的目录,仍然从中启动它们,/而不是从类似的子目录中启动/putfileshere/

如果有帮助的话,只有一个帐户需要登录到此 FTP 服务器。

答案1

allow_writeable_chroot=YES我的解决方案是vsftpd.conf

答案2

我在 vsftpd.conf 中遇到了与 local_root= 完全相同的问题。大多数 ftp 都假设 local_root = $home_folder ,但情况并非总是如此。chroot 的目标应该是不允许任何人从被监禁的目录返回一个文件夹,仅此而已。它是树中的根文件夹,而不是着陆目录!应该有在被监禁的树中指定 $home_folder 的选项。考虑 sshd_config 中 sftpd 的这个匹配块:

     Match Group mtlsftpprd001_edi-ftp
                ChrootDirectory /folder/cifs
                X11Forwarding no
                AllowTcpForwarding no
                ForceCommand internal-sftp -l INFO -d %u
                KerberosAuthentication yes

与该 AD 组匹配的每个 sftpd 登录现在都将进入 /folder/cifs/$USER 并且只允许 cd 返回一个文件夹。在 filezilla 中,路径将是 /$USER 而不是 / 。vsftpd.conf 可以实现类似功能:

user_sub_token=$USER
local_root=/folder/cifs
home_folder=/folder/cifs/$USER

目前我无法做到这一点,因此我正在寻找在登录时自动运行“CWD /folder/cifs/$USER”的方法。

相关内容