.vsftpd说明

  LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd.

访问FTP服务器时需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文件.vsftpd提供了3种ftp登录形式:

 1anonymous(匿名帐号)

  使用anonymous是应用广泛的一种FTP服务器.如果用户在FTP服务器上没有帐号,那么用户可以以anonymous为用户名,以自己的电子邮件地址为密码进行登录.当匿名用户登录FTP服务器后,其登录目录为匿名FTP服务器的根目录/var/ftp.为了减轻FTP服务器的负载,一般情况下,应关闭匿名帐号的上传功能.

  2real(真实帐号)

  real也称为本地帐号,就是以真实的用户名和密码进行登录,但前提条件是用户在FTP服务器上拥有自己的帐号.用真实帐号登录后,其登录的目录为用户自己的目录,该目录在系统建立帐号时系统就自动创建.

  3guest(虚拟帐号)

  如果用户在FTP服务器上拥有帐号,但此帐号只能用于文件传输服务,那么该帐号就是guest,guest是真实帐号的一种形式,它们的不同之处在于,geust登录FTP服务器后,不能访问除宿主目录以外的内容.

二、安装和使用

1、安装ftp服务器工具

       环境是centos6.0,安装的“vsftpd-2.2.2-6.el6.x86_64.rpm”

2、开启vsftp server服务,检查ftp端口是否打开

       /etc/init.d/vsftpd start

       netstat -lpnt | grep vsftpd,可以看到使用21端口进行通信。

3、安装ftp客户端工具

       环境是windows xp,安装了FlashFXP。

4、使用下载功能

       在linux端,touch /var/ftp/pub/file_linux;

使用FlashFXP,登陆服务器端,使用匿名用户访问,默认访问目录/var/ftp/pub,可以看到file_linux,并且可以下载到windows客户端上。

5、使用上传功能

       通过windows客户端尝试上传文件到linux的/var/ftp/pub目录下,FlashFXP工具报出失败信息“553 could not create file”。

  • 修改/etc/vsftpd/vsftpd.conf:

  

write_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES

  更多配置文件参数说明见

 

  • 禁用Selinux:

    getsebool命令可以查看当前Selinux是否禁止。如果未禁用,网上有很多说明如何禁用。

  • 检查目录权限:

    ll /var/ftp

    drwxr-xr-x. 3 root root 4096 Jun  3 14:51 pub

    说明此目录当前属主是root,所以匿名访问的用户只具有读和执行权限,没有写权限。

      有两种方式可以解决:

    A:设置pub目录为777的权限,chmod -R 777 pub

    B:在pub目录下创建子目录,设置子目录属主为ftp用户。

      先检查系统是否有ftp用户,一般默认会创建。

    

cat /etc/passwd | grep ftp
      ftp:x:107:65534::/home/ftp:/bin/false
      mkdir  /var/ftp/pub/upload
      chown ftp:root  /var/ftp/pub/upload

6、修改默认根目录。

       vsftpd服务使用匿名用户登录时,默认根目录为/var/ftp/pub,添加用户后登录的默认根目录可能是其家目录(未试过)。若需要设置为/mnt/vg,可加入如下:  

   

anon_root=/var/www/html   #针对匿名用户
  ====以下针对其它ftp用户,未试过==========
    local_root=/var/www/html   
    chroot_local_user=YES

    注解:(修改FTP目录后也要修改FTP账户权限目录 否则会出现无权限错误提示)  

7、与smb共享数据

  smb匿名用户为nobody,因此smb目录,ftp用户无法写入数据。

  解决方法

  • 将ftp加入了nobody组,设置该组权限为rwx
  • 将smb导出目录设置为777 

8、更多使用例子