这里是普通文章模块栏目内容页
CentOS_vsftpd的安装与配置

一、vsftpd软件介绍
    vsftp,全称:Very security ftp。是Linux系统下最常见,常用的 FTP 服务器架设软件。除此之外,还有一个proftp(Profession ftp)。
二、访问方式
    vsftp架设的FTP文件服务器,提供3种远程的登录方式:
    1.匿名登录方式
    不用解释了,就是不需要用户名,密码。就能登录到服务器电脑里面
    2.本地用户方式
    意思是,需要帐户名和密码才能登录。而且,这个帐户名和密码,都是在你linux系统里面,已经有的用户。
    3. 虚拟用户方式
    同样需要用户名和密码才能登录。但是和上面的区别就是,这个用户名和密码,在你linux系统中是没有的(没有该用户帐号)
三、vsftpd 的安装
1. 对于Debian和Ubuntu系统,可以直接通过: sudo apt-get install vsftpd 来安装
启用,停用和重新启动是: /etc/init.d/vsftpd start(stop 和 restart)
2. 对于Redhat, Fedoar和Centos一般这3类系统,都自带vsftpd,可以通过: rpm -qa|grep vsftp,来查询下是否已经安装了。如果没装,可以从光盘里面找到安装包双击安装,或者也可以: yum install vsftpd 来安装。(我是安装的CentOS 5.4 我用的命令就是yum install vsftpd)
注:启用、停用、重启vsftdp
service vsftpd {start|stop|restart}或/etc/init.d/vsftpd {start|stop|restart}
四、配置前的注意事项
 
1.查看,修改vsftp启动状态
查看vsftpd状态:service vsftpd status
查看vsftpd启动状态:chkconfig --list vsftpd
设置vsftpd 2345为启动状态:chkconfig --level 2345 vsftpd on
 
2.查看,修改防火墙状态
查看防火墙状态:/etc/init.d/iptables status
添加开放21号端口:/sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT
 保存配置:/etc/rc.d/init.d/iptables save
 重启防火墙(启用,停用):service iptables {start|stop|restart}
 
 3.查看,关闭selinux (查看selinux运行情况 #/usr/sbin/sestatus)
 查看selinux状态/usr/sbin/sestatus或sestatus
修改selinux状态vi /etc/sysconfig/selinux
修改SELINUX=disabled
保存退出并重启系统reboot
这样子vsftp也就安装好了,剩下的就是进行用户模式的配置了

 

五、vsftpd 三种模式的配置方法


    vsftpd的配置由文件/etc/vsftpd/vsftpd.conf,每种配置都要先修改配置文件,为了使配置文件的原始性,要先把配置文件拷贝并保存一份。

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.init

    然后,开始我们的配置,在每次配置以前,记得把原始文件覆盖到配置文件,以免出现不可知的意外错误。

cp /etc/vsftpd/vsftpd.conf.init /etc/vsftpd/vsftpd.conf

 

 1. 匿名登录方式
   修改配置文件  vi /etc/vsftpd/vsftpd.conf (由于JOY不懂使用VI命令,所以是把文件下载到本机上,用UltraEdit进行修改。强烈推荐)

要修改的内容如下(红色字体为解释,不要写入配置文件)

Anon_upload_enable=yes (开放上传权限)
Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
Write_enable=yes (开放本地用户写的权限)
Anon_other_write_enable=yes (匿名帐号可以有删除的权限)
anon_world_readable_only=no(匿名帐号可以用下载的权限)

 配置文件中没有的就添加,没有的就对值进行修改.

修改文件夹权限

cd /var/ftp
chmod 757 pub

注:

修改文件夹权限的命令:chmod 777 pub

777的意思就是 root root组 other 的权限,7=4+2+1=r+w+x=读+写+执行
查看文件夹权限的命令
ls -l ftp
chmod 757 pub
查看的时候查看当前文件夹只可以查看到下面的文件夹权限,如果要查看PUB的文件夹权限,要到FTP的上一个目录查看FTP的权限就可以显示PUB的文件夹权限,以此类推4-r 2-w 1-x | drwxr-xr-x = 756 | drwxr-xrwx = 757  

 重启vsftpd:service vsftpd restart

 2. Linux本地用户,远程登录FTP(简称:本地用户模式)

 修改配置文件

vi /etc/vsftpd/vsftpd.conf

要修改的内容如下(红色字体为解释,不要写入配置文件)

listen=yes(设置为独立服务器)
local_enable=YES(允许本地用户登录FTP)
write_enable=yes(启用本地用户(登录后)的读写权限)
local_umask=022(FTP上本地的文件权限,默认是077)
dirmessage_enable=yes(切换目录时,显示目录下.message的内容)
connect_from_port_20=yes(启用FTP数据端口的数据连接)
chroot_local_user=NO(本地所有帐户都只能在自家目录)
chroot_list_enable=yes(文件中的名单可以调用)
chroot_list_file=/etc/vsftpd.chroot_list(上述文件所在的位置(绝对路径))
ls_recurse_enable=no(禁止用户使用 ls 命令)
userlist_enable=yes(启用 用户列表文件)
userlist_file=/etc/vsftpd.user_list(用户列表文件的绝对路径)
userlist_deny=no(用户列表名单中的人不允许访问)
pam_service_name=vsftpd(验证方式)
user_config_dir=/etc/vsftpd/vsftpd_user_conf(个人配置文件的路径(文件所在目录))

 添加用户,设置密码

useradd username
passwd password

 添加用户到ftp用户组

debian或Ubuntu:

user -G username ftp

Redat,Fedoar或Centos:

usermod -G ftp username

 

创建该用户的(FTP访问)文件夹,并修改所有者权限(如果所有者不是该用户)

创建文件夹命令:

mkdir 具体文件夹路径和名称

修改所有者:

chown -R 用户文件夹

注:

这个步骤可以不做,因为linux下创建了用户,系统会自动在 /home下,创建个文件夹,名字就是这个用户的,vsftpd会默认的认为,该用户的路径就是这个文件夹。其实为了方便,我倒是建议大家直接用默认的。这样可以省去很多因为权限导致的怪问题。

 建立用户配置文档
在/etc/vsftpd 下面建立 vsftpd_user_conf 文件夹

mkdir /etc/vsftpd/vsftpd_user_conf

下面再新建个文件,名字是你本地用户的名字

vi /etc/vsftpd/vsftpd_user_conf/username

里面内容是:

write_enable=yes(给予该本地用户读写权限)

建立用户访问列表

在/etc 文件夹下,新建vsftpd.chroot_list 文件

vi /etc/vsftpd.chroot_list

内容为允许访问FTP的本地用户的名字

username

在 /etc 文件夹下,新建vsftpd.user_list 文件

vi /etc/vsftpd.user_list

内容为允许访问FTP的本地用户的名字

username

 重启vsftpd    service vsftpd restart

至此,FTP文件服务器就完成了