如何将 vsftpd 的默认目录更改为虚拟主机文件夹?

如何将 vsftpd 的默认目录更改为虚拟主机文件夹?

我在 Apache 中配置了多个虚拟主机Ubuntu 20.04 LTS。我正在使用 创建用户useradd <username>。我想将虚拟主机的目录分配给 vsftpd 中的特定用户。例如,当用户使用 FTP 客户端登录时,他唯一需要访问的是其虚拟主机内容所在的文件夹;例如:用户的主目录约翰将会/var/www/example.com/,并且您将无法访问任何其他内容。

我还想限制 root 用户的 ssh 访问,并为 ftp 用户提供端口 21。端口 21 已经开放。

这是我的vsftpd 配置文件文件:

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

我怎样才能做到这一点?

答案1

为了限制用户进入上级文件夹,需要设置chroot jail,从配置文件来看,chroot jail好像是这么设置的,如下:

chroot_local_user=YES

为了限制特定用户的访问,您可能需要检查以下指令:

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

chroot_list_enable=YES

相关内容