我在使用 VSFTPD 时遇到了一个小问题,我还无法解决它,所以我来这里寻求您的建议!
用户主目录中有一个 ftp 目录,它是通过 s3fs 的挂载点,用于访问 S3 bucket。启动我的 s3fs 的设置:
s3fs mybucket -o dbglevel=info -f -o curldbg -o url=https://s3-eu-central-1.amazonaws.com -o use_cache=/tmp/myuser -o use_path_request_style -o uid=UID-of-my-user -o gid=GID-of-my-user /home/user/ftp/
主目录的内容及其权限:
4 drwxr-xr-x 4 user nfsnobody 4096 Aug 10 08:19 .
4 drwxr-xr-x 7 root root 4096 Aug 11 07:31 ..
4 -rw------- 1 user usergroup 1750 Aug 11 10:27 .bash_history
4 drwxrwxr-x 3 user usergroup 4096 Aug 10 08:17 .local
4 -rw------- 1 user usergroup 62 Aug 10 08:18 .passwd-s3fs
4 drwxrwxr-x 2 user usergroup 4096 Aug 11 10:28 ftp
ftp 目录上的广泛设置,因为我尝试了很多方法来找到解决方案,稍后会修复它。
当我启动 s3fs 时,ftp 目录的权限被修改:
1 drwx------ 1 user usergroup 0 Jan 1 1970 ftp
我的 vsftpd.conf:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
#chroot_local_user=YES
#allow_writeable_chroot=YES
#user_sub_token=\$USER
#local_root=/home/\$USER/ftp
listen=YES
pam_service_name=vsftpd
tcp_wrappers=YES
pasv_min_port=40000
pasv_max_port=50000
pasv_address=3.124.254.185
userlist_file=/etc/vsftpd.userlist
userlist_enable=YES
userlist_deny=NO
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
可以看到,chroot的设置暂时被禁用了。我的用户在 vsftp.userlist 文件中
如果我尝试使用该配置登录,它可以正常工作,我可以登录,进入 ftp 目录并执行任何我需要执行的操作。但是,如果我强制执行 chroot 配置,我会收到以下错误消息:
500 OOPS: cannot change directory:/home/user/ftp
我现在不知道该怎么做。我真的需要用户直接进入 ftp 目录,因为使用此 FTP 用户的应用程序非常旧,无法通过其他方式进行配置。
任何想法 ?