/**
 * 1.安装vsftpd
 * 2.启动; 重启; 查看状态; 开机自启动
 * 3.查看ftp服务监听的端口
 */
# yum install -y vsftpd
# systemctl start vsftpd.service
# systemctl restart vsftpd.service
# systemctl status vsftpd.service
# systemctl enable vsftpd.service
# netstat -antup | grep ftp
/**
 * 1.新建ftp根目录
 * 2.新建“允许额外用户不被限制在主目录”文件
 *     文件中一行代表一个用户, 这些用户表示不被限制
 */
# mkdir -p /etc/vsftpd/ftp
# touch /etc/vsftpd/chroot_list

/**
 * 修改配置文件/etc/vsftpd/vsftpd.conf
 * 1.修改
 *     anonymous_enable=NO 禁止匿名登录
 *     local_enable=YES 允许本地用户登录
 *     listen=YES 开启IPv4监听
 *     listen_ipv6=NO 关闭IPv6监听
 * 2.新增
 *     local_root=/etc/vsftpd/ftp 设置ftp访问根目录
 *     chroot_local_user=YES 将用户限制在其主目录
 *     chroot_list_enable=YES 允许额外用户不被限制在主目录
 *     chroot_list_file=/etc/vsftpd/chroot_list 额外用户文件
 *     pasv_enable=YES 开启被动模式
 *     allow_writeable_chroot=YES 允许用户家目录可写,默认只读
 *     pasv_address=35.229.153.36 允许外网访问ftp
 *     pasv_min_port=26310 最小端口
 *     pasv_max_port=26310 最大端口
 * 3.重启
 * 4.查看ftp版本
 * 至此整个ftp是搭建完成了
 */
# vi /etc/vsftpd/vsftpd.conf
# systemctl restart vsftpd.service
# vsftpd -version

/**
 * 创建用户
 * 
 * 1.创建用户ftp; 2.给ftp用户设置密码; 3.调整/etc/vsftpd/ftp_repository目录的属于ftp用户、root群组(-R即同时设置子目录)
 * 4.建立用户zhangsan, 指定其主目录/etc/vsftpd/ftp_repository/zhangsan; -g设置所属群组
 * 5.设置使用权限, 文件拥有者、群组、其他。4.读; 2.写; 1.执行。
 *     对于目录/etc/vsftpd/ftp/zhangsan,拥有者有“读写执行”权限, 群组有“读执行”权限, 其他有“执行”权限
 * 
 * 当我们对于用户权限有需求的时候, 比如希望账号zhangsan对于文件目录/zhangsan拥有上传和下载权限, lisi对于该目录只有下载权限; 
 * chown调整目录的拥有者、所属群主; chmod命令调整拥有者、群主、其他的使用权限。我们可以通过chown命令和chmod命令来达到不同用户的上传和下载权限控制
 */
# adduser ftp
# passwd ftp
# chown -R ftp:root /etc/vsftpd/ftp
# useradd -d /etc/vsftpd/ftp/zhangsan zhangsan
# chmod 751 /etc/vsftpd/ftp/zhangsan
# mkdir -p /etc/vsftpd/ftp

//删除用户
# userdel zhangsan
# rm -rf /home/zhangsan
# rm -rf /var/spool/mail/zhangsan

以下内容看实际情况确认是否需要
1.关闭防火墙或添加白名单

/**
 * 关闭防火墙
 * 
 */
# systemctl stop firewalld.service
# systemctl disable firewalld.service
# systemctl status firewalld.service
/**
 * 将ftp服务加入白名单
 * 
 */
# firewall-cmd --list-all
# firewall-cmd --permanent --zone=public --add-service=ftp
# firewall-cmd --reload
/**
 * 开放端口, 即端口白名单
 * 删除开放端口, 解除端口白名单
 */
# firewall-cmd --list-all
# firewall-cmd --zone=public --add-port=26310/tcp --permanent
# firewall-cmd --reload
# firewall-cmd --zone=public --remove-port=26310/tcp --permanent
# firewall-cmd --reload

2.修改ftp默认端口

/**
 * 将ftp默认端口21调整为26311
 * 
 * 1.编辑/etc/services, 将下图红框中的21端口调整为26311
 * 2.编辑ftp配置文件/etc/vsftpd/vsftpd.conf, 增加listen_port=26311
 * 3.重启
 */
# vi /etc/services
# vi /etc/vsftpd/vsftpd.conf
# systemctl restart vsftpd.service

centos ftp的用户 centos ftp用户权限设置_主目录


3.调整selinux关于ftp的限制

/**
 * 1.关闭selinux
 * 2.开启selinux
 */
# setenforce 0
# setenforce 1
/**
 * 1.selinux中关于ftp的
 * 2.将tftp_anon_write、ftpd_full_access、tftp_home_dir设置为ON
 */
# getsebool -a | grep ftp
# setsebool -P tftp_anon_write 1
# setsebool -P ftpd_full_access 1
# setsebool -P tftp_home_dir 1