我有一段 Java 程序,用于访问本地 FTP 服务器(在 VSFTPD 上运行),用于上传和下载文件。我计划让此应用程序具有远程功能,以便它可以访问远程计算机进行文件传输。以下是我迄今为止所做的工作。
- 使用以下方式安装 VSFTPD
sudo apt-get install vsftpd
(我在 Ubuntu 16.04 LTS 上运行)。 添加了如下配置。(我删除了注释以减少内容)
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES #local_umask=022 #anon_upload_enable=YES #anon_mkdir_write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES #chown_uploads=YES #chown_username=whoever #xferlog_file=/var/log/vsftpd.log #xferlog_std_format=YES #idle_session_timeout=600 #data_connection_timeout=120 #nopriv_user=ftpsecure #async_abor_enable=YES #ascii_upload_enable=YES #ascii_download_enable=YES #ftpd_banner=Welcome to blah FTP service. #deny_email_enable=YES #banned_email_file=/etc/vsftpd.banned_emails #chroot_local_user=YES #chroot_local_user=YES #chroot_list_enable=YES #chroot_list_file=/etc/vsftpd.chroot_list #ls_recurse_enable=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd # encrypted connections. rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=NO #utf8_filesystem=YES local_root=/var/ftp/local_root
创建一个名为的单独用户
ftpuser
,并将该用户的主目录更改为/var/ftp/local_root
。- 已将用户添加至
/etc/vsftpd.chroot_list
。
守护进程已启动并正在运行,当我使用我的凭据运行 java 代码片段时当前登录的账户文件上传非常顺利。文件正在上传到当前用户的主目录。(根据当前设置,这是应该的)
现在我需要做的是,在当前登录的用户中运行此代码片段,并以 的身份登录 FTP 服务器ftpuser
,这是系统中可用但当前未登录的用户帐户。为此,我已将代码片段中的代码片段更改为 和,ftpuser
然后<password>
出现错误530 Please login with USER and PASS.
我做错了什么?我把配置搞乱了吗?或者我试图实现的目标是否可行?