问题

使用匿名用户从 ftp 客户端登录 vsftp 服务器,尝试上传文件失败并显示错误消息:

# ftp vsftpsrv
Connected to vsftpsrv (10.182.38.176).
220 (vsFTPd 2.0.5)
Name (10.182.38.176:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> ls
227 Entering Passive Mode (10,182,38,176,29,34)
150 Here comes the directory listing.
drwxr-xr-x    2 0        0            4096 Jan 09  2013 pub
226 Directory send OK.
ftp> put vsftpd.txt
mput vsftpd.txt? y
227 Entering Passive Mode (10,182,38,176,182,24)
550 Permission denied.
ftp>
www. On IT Road .com

解决方案

默认情况下,匿名用户无法上传文件,也无法通过配置文件限制在 vsftp 服务器上创建目录。

注意:匿名用户无法在 vsftpd "/" 目录下上传文件,首先创建一个子目录作为解决方法。

  1. 在 vsftp 服务器上,确保下面的行存在并且没有在 /etc/vsftpd/vsftpd.conf 中注释掉:
anon_upload_enable=YES

注意:如果允许匿名用户创建目录,那么也取消注释“anon_mkdir_write_enable=YES”。

2.在vsftp服务器上,在vsftpd“/”目录下创建子目录/var/ftp/

# mkdir /var/ftp/anon_upload
  1. 然后将目录所有权更改为 ftp:root 并将权限更改为 0777:
# chown ftp:root /var/ftp/anon_upload/
# chmod 0777 /var/ftp/anon_upload/
# stat /var/ftp/anon_upload/
  File: `/var/ftp/anon_upload/'
  Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: fc00h/64512d    Inode: 719500      Links: 2
Access: (0777/drwxrwxrwx)  Uid: (   14/     ftp)   Gid: (    0/    root)
Access: 2014-02-25 09:27:47.000000000 -0500
Modify: 2014-02-25 09:26:04.000000000 -0500
Change: 2014-02-25 09:38:17.000000000 -0500
  1. 在vsftp服务器上重启vsftpd服务:
# service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]
  1. 从ftp客户端登录vsftp服务器,在新建目录下上传文件:
# ftp vsftpsrv
Connected to vsftpsrv (10.182.38.176).
220 (vsFTPd 2.0.5)
Name (10.182.38.176:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> ls
227 Entering Passive Mode (10,182,38,176,205,23)
150 Here comes the directory listing.
drwxrwxrwx    2 14       0            4096 Nov 25 14:26 anon_upload
drwxr-xr-x    2 0        0            4096 Jan 09  2013 pub
226 Directory send OK.
ftp> cd anon_upload
250 Directory successfully changed.
ftp> put vsftpd.txt
local: vsftpd.txt remote: vsftpd.txt
227 Entering Passive Mode (10,182,38,176,34,113)
150 Ok to send data.
226 File receive OK.
38 bytes sent in 1.3e-05 secs (2923.08 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (10,182,38,176,124,56)
150 Here comes the directory listing.
-rw-------    1 14       50             38 Nov 25 14:39 vsftpd.txt
226 Directory send OK.
ftp>

常见错误:

  1. 如果上面的解决方法步骤3没有设置,那么匿名用户上传文件会遇到以下错误:
# ftp vsftpsrv
Connected to vsftpsrv (10.182.38.176).
220 (vsFTPd 2.0.5)
Name (10.182.38.176:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> ls
227 Entering Passive Mode (10,182,38,176,159,123)
150 Here comes the directory listing.
drwxr-xr-x    2 0        0            4096 Nov 25 14:26 anon_upload
drwxr-xr-x    2 0        0            4096 Jan 09  2013 pub
226 Directory send OK.
ftp> cd anon_upload
250 Directory successfully changed.
ftp> pwd
257 "/anon_upload"
ftp> put vsftpd.txt
local: vsftpd.txt remote: vsftpd.txt
227 Entering Passive Mode (10,182,38,176,179,248)
553 Could not create file.
ftp>
  1. 如果授予vsftpd“/”目录0775权限:“#chmod -R 0775 /var/ftp”,那么匿名用户登录会因为安全问题而失败:
# ftp vsftpsrv
Connected to vsftpsrv (10.182.38.176).
220 (vsFTPd 2.0.5)
Name (10.182.38.176:root): anonymous
331 Please specify the password.
Password:
500 OOPS: vsftpd: refusing to run with writable anonymous root
Login failed.
ftp>
匿名用户上传文件到VSFTP服务器失败
日期:2020-09-17 00:12:58 来源:oir作者:oir