![如何将 vsftpd 的默认目录更改为虚拟主机文件夹?](https://linux22.com/image/1623865/%E5%A6%82%E4%BD%95%E5%B0%86%20vsftpd%20%E7%9A%84%E9%BB%98%E8%AE%A4%E7%9B%AE%E5%BD%95%E6%9B%B4%E6%94%B9%E4%B8%BA%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
我在 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