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
(完)