部署环境

  1. CentOS Linux release 7.8.2003 (Core)
  2. vsftpd-3.0.2-27.el7.x86_64
  3. yum配置为阿里云源

安装vsftp

使用yum安装vsftd

[root@localhost etc]# yum install vsftpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 vsftpd.x86_64.0.3.0.2-27.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

========================================================================================================================================================================
 Package                                架构                                   版本                                          源                                    大小
========================================================================================================================================================================
正在安装:
 vsftpd                                 x86_64                                 3.0.2-27.el7                                  base                                 172 k

事务概要
========================================================================================================================================================================
安装  1 软件包

总下载量:172 k
安装大小:353 k
Is this ok [y/d/N]: y
Downloading packages:
vsftpd-3.0.2-27.el7.x86_64.rpm                                                                                                                   | 172 kB  00:00:00   
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : vsftpd-3.0.2-27.el7.x86_64                                                                                                                          1/1 
  验证中      : vsftpd-3.0.2-27.el7.x86_64                                                                                                                          1/1 

已安装:
  vsftpd.x86_64 0:3.0.2-27.el7                                                                            

完毕!

防火墙21端口放行

[root@localhost vsftpd]# firewall-cmd --add-port=21/tcp --permanent
success
[root@localhost vsftpd]# firewall-cmd --reload
success

启动vsftpd服务

[root@localhost vsftpd]# service vsftpd start
Redirecting to /bin/systemctl start vsftpd.service

启动过程中可能会报错使用以下指令查看报错信息

[root@localhost vsftpd]# systemctl status vsftpd.service

如果提示

vsftpd.service: control process exited, code=exited status=1

则可能为端口被vsftp进程占用,此时即使使用service vsftpd stop也无法杀死vsftp进程需要手动杀死进程

首先查看占用21端口的进程

[root@localhost vsftpd]# netstat -natp |grep 21
tcp        0      0 10.101.53.121:22        10.101.53.196:51857     ESTABLISHED 17524/sshd: root@pt 
tcp        0      0 10.101.53.121:22        10.101.53.93:54673      ESTABLISHED 28425/sshd: root@pt 
tcp6       0      0 :::21                   :::*                    LISTEN      20284/vsftpd   

可以看到vsftpd进程未被杀死,将其kill

[root@localhost vsftpd]# kill 20284

之后重启vsftp服务

[root@localhost vsftpd]# systemctl start vsftpd.service

配置vsftp

现在的需求为,新建一个账户,需要此账户使用ftp登入服务器后,可进入指定的文件夹。

首先新建一个账户web

[root@localhost vsftpd]# useradd web

修改密码,需要输入两次密码确认,输入时是看不见输入字符的,如果输入错误了,使用ctrl+u清除后重新输入密码。

[root@localhost vsftpd]# passwd web
更改用户 web 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

修改sudoers文件,使web账户拥有修改其他目录的权限

[root@localhost vsftpd]# chmod -v u+w /etc/sudoers  
"/etc/sudoers" 的权限模式保留为0777 (rwxrwxrwx)

使用vi编辑文件,在root下放添加一条记录

root    ALL=(ALL)    ALL
web        ALL=(ALL)    ALL #这个是新用户

进入vsftpd文件夹

[root@localhost vsftpd]# cd /etc/vsftpd

使用vi指令新建文件chroot_list,不添加任何内容直接保存退出

[root@localhost vsftpd]# vi /etc/vsftpd/chroot_list

新建一个userconf文件夹,在其中新建一个文件名为web的文件

[root@localhost vsftpd]# mkdir /etc/vsftpd/userconf
[root@localhost vsftpd]# vi /etc/vsftpd/userconf/web

在web文件中写入如下信息,这里配置的是登入以后所在的目录节点,可根据需求自行更改,我这里直接配置根目录

local_root=/

编辑/etc/vsftpd/vsftpd.conf文件

在文末加入以下信息

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
user_config_dir=/etc/vsftpd/userconf

重启vsftp服务

[root@localhost vsftpd]# service vsftpd restart
Redirecting to /bin/systemctl restart vsftpd.service

将vsftp加入开机自启动

[root@localhost vsftpd]# chkconfig vsftpd on
注意:正在将请求转发到“systemctl enable vsftpd.service”。
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

客户端连接

这里用两种方式连接ftp服务器

  1. cmd模式下ftp指令连接
  2. 资源管理器连接

win+r输入cmd打开cmd窗口

使用以下指令连接ftp服务器

C:\Users\admin>ftp    #打开ftp命令行
ftp> open 10.101.53.121    #连接到服务器
连接到 10.101.53.121。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(10.101.53.121:(none)): web    #输入用户名
331 Please specify the password.
密码:    #输入密码
230 Login successful.
ftp> ls #查看当前目录下所有文件
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
backup
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
226 Directory send OK.
ftp: 收到 115 字节,用时 0.02秒 7.19千字节/秒。
ftp> bye    #退出ftp命令行
221 Goodbye.

C:\Users\admin>

资源管理器连接ftp服务器前,需要先做几个设置

打开cmd,输入OptionalFeatures.exe打开“windows功能”

将“TFTP客户端”、“fpt服务”以及“ftp拓展性”勾选->确定

image.png

image.png

再次打开cmd,输入inetcpl.cpl打开“internet属性窗口”

将“使用被动FTP(用于防火墙和DSL调制解调器的兼容)”去掉勾选->确定

image.png

win+e打开资源管理器

在地址栏输入ftp地址并访问

image.png

未登录时会显示pub文件夹并且无法进行文件传输操作,右键空白处选择登录,输入账号密码即可看到文件目录

image.png

image.png

image.png

在复制文件夹的时候,可能会提示550 create directory operation failed

ftp> mkdir
目录名 asdf
550 Create directory operation failed.
ftp>

原因是当前目录无写权限

可以用chmod 777来提权

[root@localhost home]# ll
总用量 4
drwxr-xr-x. 7 root  root   251 10月 22 08:59 lnmp1.7
drwxr-xr-x. 5 mysql mysql 4096 10月 22 10:48 mysql_db
drwx------. 5 web   web    128 10月 22 14:55 web
drwxrwxrwx. 2 root  root    82 10月 22 10:19 wwwlogs
drwxr-xr-x. 3 root  root    21 10月 22 10:00 wwwroot
[root@localhost home]# chmod 777 wwwroot
[root@localhost home]# ls
lnmp1.7  mysql_db  web  wwwlogs  wwwroot
[root@localhost home]# ll
总用量 4
drwxr-xr-x. 7 root  root   251 10月 22 08:59 lnmp1.7
drwxr-xr-x. 5 mysql mysql 4096 10月 22 10:48 mysql_db
drwx------. 5 web   web    128 10月 22 14:55 web
drwxrwxrwx. 2 root  root    82 10月 22 10:19 wwwlogs
drwxrwxrwx. 3 root  root    21 10月 22 10:00 wwwroot
Last modification:December 23rd, 2020 at 09:20 am
If you think my article is useful to you, please feel free to appreciate