Linux-RedHat7.4-服务器搭建FTP
Linux FTP
1、安装vsftpd和lftp:
yum -y install vsftpd lftp ftp 
2、创建用户:
vsftpd提供了三种认证方式:本地用户、虚拟用户、匿名用户,本文介绍本地用户的认证方式。
注:本文创建的本地用户为只能访问ftp,不可以登录linux。
useradd -d data001 -s /sbin/nologin nginx01
passwd nginx01
Log*#06# 
useradd -d data002-s /sbin/nologin nginx02
passwd nginx02
Log*#06# 
3、新建chroot_list文件:
cd /etc/vsftpd
touch chroot_list 
4、配置用户访问权限:
1)vsftpd.conf:
vim /etc/vsftpd/vsftpd.conf
  
修改以下几项:
#禁用匿名登录,默认是启用
anonymous_enable=NO
#NO表示所有用户都可以跳出家目录,YES表示都不可以跳出,默认为都可以跳出
chroot_local_user=NO
#启用可以或不可以跳出家目录的例外
chroot_list_enable=YES
#当chroot_local_user=NO时,chroot_list里面配置的用户不可以跳出家目录,当chroot_local_user=YES时,chroot_list里面配置的用户可以跳出家目录
chroot_list_file=/etc/vsftpd/chroot_list#添加以下几项:#NO表示所有用户均不可以登录ftp,YES表示所有用户均能访问ftp,默认是YES
userlist_deny=NO
#当userlist_deny=NO时,user_list是白名单,当userlist_deny=YES时,user_list是黑名单
userlist_file=/etc/vsftpd/user_list 
此时,解决方法有两个:
第一种,就是在vsftpd.config里面添加“allow_writeable_chroot=YES”:
vim /etc/vsftpd/vsftpd.conf
用户家目录可写,默认是只读的
allow_writeable_chroot=YES 
注:allow_writeable_chroot=YES的作用:
 如果设置了用户不能跳出家目录,那么在vsftp2.3版本之后要求家目录默认只能是只读的,此时如果家目录权限不是只读的,就不能登录,登录会报以下错误:Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()。
第二种,把家目录设置为只读:“chmod a-w /ftpfile”:
chmod a-w /ftpfile 
2)chroot_list:
添加test用户
vim /etc/vsftpd/chroot_list
test 
3)user_list:
添加test用户
vim /etc/vsftpd/user_list
test 
4)vsftpd:
此时,如果不修改vsftpd文件的配置,登录会报530错误:Login failed: 530 Login incorrect.
解决方法有两个:
第一:注释auth required pam_shells.so;
vim /etc/pam.d/vsftpd
#auth   required        pam_shells.so 
第二:pam_shells.so改为pam_nologin.so
vim /etc/pam.d/vsftpd
auth   required        pam_nologin.so 
5、修改selinux配置:
如果不修改selinux配置,登录会报500错误:vsftpd 500 OOPS: chroot,因为test用户的shell是nologin的。
此时,解决方法有两个:
第一,关闭selinux:
vim /etc/selinux/config
SELINUX=disabled 
第二,修改ftp_full_access为on:
getsebool -a | grep ftpd 
setsebool -P ftpd_full_access 1 
setenforce 1 
6、重启:
reboot 
7、关闭防火墙:
(1)设置开机启用防火墙:
systemctl enable firewalld.service
 (2)设置开机禁用防火墙:
systemctl disable firewalld.service
 (3)启动防火墙:
systemctl start firewalld
 (4)关闭防火墙:
systemctl stop firewalld
 (5)检查防火墙状态:
systemctl status firewalld 
 (6)查看防火墙开启端口表:
firewall-cmd --list-ports
8、启动vsftpd服务:
#启动服务
systemctl start vsftpd.service
#停止服务
systemctl stop vsftpd.service
#重启服务
systemctl restart vsftpd.service
#开机自启
systemctl enable vsftpd.service
#查看自启列表
systemctl -l
systemctl -l | grep vsftpd 
9、连接:
1.打开终端。在终端中输入以下命令来连接到FTP服务器:
ftp <服务器地址或IP> 
2.输入用户名和密码。连接到FTP服务器后,系统会提示你输入用户名和密码:
Name: <用户名>
Password: <密码> 
3.导航FTP服务器。登录成功后,你可以使用ftp命令导航FTP服务器的文件和目录。以下是一些常用的命令:
ls:列出当前目录下的文件和目录。cd <目录>:进入指定的目录。get <文件>:从FTP服务器下载指定的文件。put <文件>:上传文件到FTP服务器。pwd:显示当前所在的FTP服务器目录。quit:退出FTP连接。
get file.txt 
put file.txt 
4.退出FTP连接。当你完成了对FTP服务器的操作后,可以使用以下命令退出FTP连接:
quit 
(完)
