版本信息
os版本:redhat5.7
vsftp版本:2.0.5-21.el5
以下涉及用户均为本地用户
1.关闭selinux
vi /etc/selinux/config
selinux=disabled
2.关闭防火墙
service iptables stop
service ip6tables stop
3.查看是否安装vsftpd
rpm -qa|grep vsftpd
4.安装vsftpd
yum install vsftpd
5.启动vsftpd
service vsftpd start
6.查看21端口是否存在
netstat -nltp|grep 21
7.在浏览器打开ftp://xx.xx.xx.xx
未配置主目录时默认为本地用户的家目录
8.创建ftp用户
useradd ftp_user
9.设置用户密码
echo "ftp_passwd" |passwd ftp_user --stdin
10.限制用户不能登录OS
usermod -s /sbin/nologin ftp_user
11.创建ftp目录
mkdir /data/ftp_directory
12.备份vsftpd配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.confbak
13.配置ftp权限
vi /etc/vsftpd/vsftpd.conf
# 禁用匿名用户
anonymous_enable=NO
# 禁止/etc/vsftpd/chroot_list文件内的用户离开设置的根目录,即访问设置的根目录的上级目录
chroot_local_user=NO # 禁止本地用户离开根目录
chroot_list_enable=YES # 启用文件管理用户
chroot_list_file=/etc/vsftpd/chroot_list # 记录用户清单的文件
# 设置本地用户登录后进入的主目录,不设置时为本地用户的家目录
local_root=/data/ftp_directory
# 只有vsftpd.usre_list文件中包含的用户才可以登录,userlist_deny设置为YES时表示vsftpd.usre_list文件中包含的用户不可以登录
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd/vsftpd.user_list
# 设置用户配置的目录,可以为某个用户单独设置一些配置
user_config_dir=/etc/vsftpd/vsftpd_user_conf/
# 为某个用户单独设置属性
local_root=/data/ftp_directory
# 限制用户只能使用以下命令,示例实现的是只能上传、查看、切目录,不能下载、删除文件、删除目录、重命名
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
14.重启vsftpd服务
systemctl restart vsftpd
15.打开浏览器登录ftp
如果输入账户密码无法登录
vi /etc/pam.d/vsftpd
auth required pam_shells.so 修改为auth required pam_nologin.so
重启vsftpd服务即可