我在容器中设置了 vsftpd。出现了一个问题,即即使配置了 chroot,其中一个 ftp 用户也可以访问自己的主目录。
在容器的/etc/passwd中
ftpuser1:x:996:996::/srv/ftp/./folder1/:/bin/bash
但是,当 ftpuser1 从 ftp 登录时cd /
,ls
它会显示中的所有其他文件夹/srv/ftp/
,例如 folder1、folder2 等。
.
我对将主目录放入 /etc/passwd 的方式有点怀疑,这样做有什么理由吗?我没有构建服务器,也不知道它是如何以这种方式配置的。
以下是 vsftpd 配置
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=NO
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_address=123.123.123.123
pasv_min_port=40000
pasv_max_port=45000
anon_root=/srv/ftp/folder2
chroot_local_user=YES
passwd_chroot_enable=YES
pasv_promiscuous=yes
background=NO
vsftpd_log_file=/var/log/vsftpd/vsftpd.log
log_ftp_protocol=YES
debug_ssl=YES