一. 安装
1.安装软件,创建ftp登录账户,并关闭账户系统登录
yum install vsftpd -y
useradd ftpshare -s /sbin/nologin
passwd ftpshare
2.关闭selinux和防火墙
setenforce 0
systemctl stop firewalld.service
systemctl disable firewalld.service
二. 配置
vi /etc/vsftpd/vsftpd.conf
#关闭匿名登录
anonymous_enable=NO
#允许本地用户登录
local_enable=YES
#指定登录的根目录
local_root=/opt/ftp
#允许写权限
write_enable=YES
local_umask=022
#开启设置欢迎语言
dirmessage_enable=YES
#启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录
xferlog_enable=YES
xferlog_file=/var/log/xferlog
#限制用户只能,在自己的目录中,此时用户的根目录不能有写权限,chmod a-w /home/ftpshare
chroot_local_user=YES
#确保ftp数据从端口20传输
connect_from_port_20=YES
#以独立的模式运行服务
listen=YES
#关闭IPv6
listen_ipv6=NO
#设置PAM认证服务的配置文件名称,保存在/etc/pam.d/下的vsftpd文件
pam_service_name=vsftpd
#在/etc/vsftpd/chroot_list文件中列出的用户,
#可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录
chroot_list_enable=YES
#允许访问其他目录的用户名单
chroot_list_file=/etc/vsftpd/chroot_list
ftp常用命令
ftp> ascii # 设定以ASCII方式传送文件(缺省值)
ftp> bell # 每完成一次文件传送,报警提示.
ftp> binary # 设定以二进制方式传送文件.
ftp> bye # 终止主机FTP进程,并退出FTP管理方式.
ftp> case # 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母.
ftp> cd # 同UNIX的CD命令.
ftp> cdup # 返回上一级目录.
ftp> chmod # 改变远端主机的文件权限.
ftp> close # 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除.
ftp> delete # 删除远端主机中的文件.
ftp> dir [remote-directory] [local-file] # 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件.
ftp> get [remote-file] [local-file] # 从远端主机中传送至本地主机中.
ftp> help [command] # 输出命令的解释.
ftp> lcd # 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录.
ftp> ls [remote-directory] [local-file] # 同DIR.
ftp> macdef # 定义宏命令.
ftp> mdelete [remote-files] # 删除一批文件.
ftp> mget [remote-files] # 从远端主机接收一批文件至本地主机.
ftp> mkdir directory-name # 在远端主机中建立目录.
ftp> mput local-files # 将本地主机中一批文件传送至远端主机.
ftp> open host [port] # 重新建立一个新的连接.
ftp> prompt # 交互提示模式.
ftp> put local-file [remote-file] # 将本地一个文件传送至远端主机中.
ftp> pwd # 列出当前远端主机目录.
ftp> quit # 同BYE.
ftp> recv remote-file [local-file] # 同GET.
ftp> rename [from] [to] # 改变远端主机中的文件名.
ftp> rmdir directory-name # 删除远端主机中的目录.
ftp> send local-file [remote-file] # 同PUT.
ftp> status # 显示当前FTP的状态.
ftp> system # 显示远端主机系统类型.
ftp> user user-name [password] [account] # 重新以别的用户名登录远端主机.
ftp> ? [command] # 同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。
ftp> ! # 从 ftp 子系统退出到外壳。