vsftpd服务
1.ftp的定义: ftp:// ##文件传输协议
2.ftp协议提供的软件: 在rhel7中:vsftpd
3.部署ftp服务
[root@localhost ~]# vim /etc/sysconfig/selinux ##更改防火墙状态 SELINUX=disabled
[root@localhost ~]# reboot ##reboot之后火墙状态才会更改
[root@localhost ~]# getenforce ##查看火墙状态
[root@localhost ~]# yum install vsftpd lftp -y ##安装ftp和lftp
[root@localhost ~]# systemctl start vsftpd ##开启ftp
[root@localhost ~]# systemctl enable vsftpd
[root@localhost ~]# lftp 172.25.254.228
lftp 172.25.254.228:~> ls
drwxr-xr-x 2 0 0 6 Mar 07 2014 pub
报错:
[root@localhost ~]# lftp 172.25.254.228
lftp 172.25.254.228:~> ls
`ls' at 0 [Delaying before reconnect: 29] ##说明没有连接上,防火墙阻止
[root@localhost ~]# firewall-cmd --permanent --add-service=ftp ##将ftp服务加进防火墙
success
[root@localhost ~]# firewall-cmd --reload ##重新加载防火墙
success
[root@localhost ~]# lftp 172.25.254.228 ##再次查看就可以了
lftp 172.25.254.228:~> ls
drwxr-xr-x 2 0 0 6 Mar 07 2014 pub
4.ftp服务的基本信息
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口: 21/tcp
服务配置文件:/etc/vsftpd/vsftpd.conf
报错id的解析:500 ##文件系统权限过大
530 ##用户认证失败
550 ##服务本身功能未开放
553 ##本地文件系统权限过小
(1)匿名用户家目录修改
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# ls
pub
[root@localhost ftp]# touch westosfile ##建立一个文件有利于后面操作查看的结果
[root@localhost ftp]# ls
pub westosfile
[root@localhost ftp]# mkdir /ftpdir/westosdir -p ##建立一个新的家目录
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf
13 anon_root=/ftpdir ##用户家目录修改
[root@localhost ftp]# systemctl restart vsftpd ##重启vsftpd
[root@localhost ftp]# lftp 172.25.254.228
lftp 172.25.254.228:~> ls
drwxr-xr-x 2 0 0 6 May 07 11:10 westosdir ##可以看到家目录的修改
(2)用匿名用户是否可以登陆
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=NO ##用匿名用户不可以登陆
[root@localhost ftp]# systemctl restart vsftpd
[root@localhost ftp]# lftp 172.25.254.228
lftp 172.25.254.228:~> ls
##登录不上,处于无法连接状态 (如图所示)
(3)本地用户是否可以登陆
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES
16 local_enable=NO ##本地用户是否可以登陆
[root@localhost ftp]# systemctl restart vsftpd
[root@localhost ftp]# useradd westos ##建立用户
[root@localhost ftp]# lftp 172.25.254.228 -u westos
Password:
lftp dmf@172.25.254.228:~> ls
ls: Login failed: 530 This FTP server is anonymous only. ##服务本身功能未开放
注意: 要将之前做的匿名登录改为YES,否则会出现报错,如下:
报错:
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ftp]# systemctl restart vsftpd
[root@localhost ftp]# useradd westos
[root@localhost ftp]# lftp 172.25.254.228 -u westos
Password:
lftp westos@172.25.254.228:~> ls
`ls' at 0 [Delaying before reconnect: 8] ##会显示连接不上
(4)是否对登陆的用户可写
[root@localhost ~]# su - student
[student@localhost ~]$ cd /home/student
[student@localhost ~]$ ls
[student@localhost ~]$ mkdir pub ##建立一个目录
[student@localhost ~]$ ls
pub
[student@localhost ~]$ exit
logout
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
local_enable=YES ##本地用户可登录
write_enable=YES ##本地用户登录可写
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.228 -u student
Password:
lftp student@172.25.254.228:~> cd pub
cd ok, cwd=/home/student/pub
lftp student@172.25.254.228:~/pub> put /etc/passwd ##可以上传文件说明对登录的用户是可写的
2048 bytes transferred
(5)匿名用户上传
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf
28 anon_upload_enable=YES ##匿名用户上传
[root@localhost ftp]# systemctl restart vs