一 安装vsftpd

查看是否已经安装vsftpd
# rpm -qa | grep vsftpd

如果没有,就安装,并设置开机启动
# yum -y install vsftpd

# chkconfig vsftpd on

添加一个防火墙例外:

centos上传下载ftp_centos

# service iptables restart

基本命令参考
#service vsftpd status查看状态
#service vsftpd start 启动
#serivce vsftpd restart 重启
#service vsftpd stop 停止

二 配置

配置文件在 /etc/vsftpd/vsftpd.conf

用户权限配置说明:

 

chroot_local_user=YES

chroot_local_user=NO

chroot_list_enable=YES

1.所有用户都被限制在其主目录下

2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制

1.所有用户都不被限制其主目录下

 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制

chroot_list_enable=NO

1.所有用户都被限制在其主目录下 

2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户

1.所有用户都不被限制其主目录下

 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户


例如:现在我要让所有用户都限制在其主目录下,而root用户和wx用户不做限制,则进行如下配置

# vi   /etc/vsftpd/vsftpd.conf

centos上传下载ftp_主目录_02

其中chroot_list文件不存在

则用vi命令建立,如:

# cd  /etc/vsftpd

# vi  chroot_list

root

wx


配置完毕启动

# service vsftpd start

另外关于文件ftpusers和user_list的说明:

【在/etc/目录下的vsftpd/ftpusers和vsftpd/user-list两个文件与主配置文件中的 "userlist_enable" 和 "userlist_deny" 选项相关。
两个文件中,每个用户名需占用一行。
当userlist_enable为YES时,如果一个用户名在"vsftpd/user_list"文件中,而同时"userlist_deny"选项为"YES",
则该用户在试图登录FTP服务器时,将不能够登录,甚至连输入密码的提示信息都没有,直接被FTP服务器拒绝。
如果一个用户名在"vsftpd/ftpusers"文件中,同时"userlist_deny"选项为"YES",则该用户在试图登录FTP服务器时,
将能看到输入密码的提示,但即使正确输入密码仍然不能登录FTP服务器。
这两文件常用来阻止"root"、"apache"和"www"等系统用户登录FTP服务器以保护系统安全。
至于“两个文件中用户不同会怎样,该用户到底能否登陆”的问题答案是:只要名列这两文件之一的都不能登录。
两个不同文件只是拒绝的时候出现的情况不同,“拒绝”是相同的。】

比方说我们要让root用户可以以ftp的身份登陆,那么从这两个文件中注释掉即可。

=========================================================

三  创建用户

说明:系统自带的用户默认是可以直接进行ftp的,我们也可以单独创建只能ftp的用户

增加用户jack,指向目录/home/jack,禁止登录SSH权限。
useradd  -d /home/jack  -g  ftp  -s  /sbin/nologin  jack

设置用户口令
passwd  jack


四  ftp基本命令

登录 : ftp  192.168.0.130        退出: bye

其它:  在终端输入help命令:

centos上传下载ftp_ftp_03


五 问题解决

 <1>centos vsftp 500 OOPS: cannot changedirectory:/home/ftp

  原因是你的CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。

  //查看SELinux设置

  #getsebool -a|grep ftp

 ftp_home_dir-->off

改为on

# setsebool ftp_home_dir 1

  //再次查看当前状态是否是on的状态

  #getsebool-a|grep ftp

 ftp_home_dir-->on

 //setsebool使用-P参数,无需每次开机都输入这个命令

  #setsebool-P ftp_home_dir 1

  #servicevsftpd restart


 <2>centos vsftpd 553 Could not createfile解决方法

  #setsebool-P allow_ftpd_full_access 1

  命令执行需要一定时间,请耐心等待  记得重启vsftpd


windows上搭建ftp服务,请使用Server-U