一、环境准备
1)CentOS release 6.5 (Final)
2)本例采用YUM安装,需要先配置好YUM源
3)为了实验的顺利,这里关闭防火墙和selinux
二、安装部署
1)配置vsftpd
[root@biezz ~]# yum install -y vsftpdLoaded plugins: fastestmirror
Loading mirror speeds from cached hostfile Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package vsftpd.x86_64 0:2.2.2-24.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved =============================================================================================== Package Arch Version Repository Size =============================================================================================== Installing: vsftpd x86_64 2.2.2-24.el6 base 156 k Transaction Summary =============================================================================================== Install 1 Package(s) Total download size: 156 k Installed size: 340 k Downloading Packages: vsftpd-2.2.2-24.el6.x86_64.rpm | 156 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : vsftpd-2.2.2-24.el6.x86_64 1/1 Verifying : vsftpd-2.2.2-24.el6.x86_64 1/1 Installed: vsftpd.x86_64 0:2.2.2-24.el6 Complete!
[root@biezz ~]# cd /etc/vsftpd/
[root@biezz vsftpd]# cp vsftpd.conf vsftpd.conf-bak
[root@biezz vsftpd]# vim vsftpd.conf
修改如下内容:
anonymous_enable=YES --->anonymous_enable=NO
#chroot_list_enable=YES ---> chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list ---> chroot_list_file=/etc/vsftpd/chroot_list
假定我们需要登录的用户为biezz,需要上传下载的目录为/data
[root@biezz vsftpd]# mkdir /data
[root@biezz vsftpd]# useradd -d /data biezz
useradd: warning: the home directory already exists. #此报错提示可以忽略,因为上面已经新建了biezz的家目录
Not copying any file from skel directory into it.
[root@biezz vsftpd]# chsh -s /sbin/nologin biezz
Changing shell for biezz.
Shell changed.
[root@biezz data]# echo redhat |passwd --stdin biezz
Changing password for user biezz.
passwd: all authentication tokens updated successfully.
[root@biezz vsftpd]# cat /etc/passwd
biezz:x:500:500::/data:/sbin/nologin
[root@biezz vsftpd]# vim /etc/vsftpd/chroot_list
biezz #保存
[root@biezz vsftpd]# service vsftpd restart
Shutting down vsftpd: [FAILED]
Starting vsftpd for vsftpd: [ OK ]
三、测试
[root@biezz vsftpd]# cd /data/
[root@biezz data]# touch aa bb cc
[root@biezz data]# service vsftpd restart
此时我们可以正常从ftp服务器上面下载文件,但是上传文件会有如下报错:
解决方法:
[root@biezz data]# ll -d /data drwxr-xr-x. 2 root root 4096 Nov 10 14:24 /data #该目录权限是属于root用户,root组
修改目录权限如下
[root@biezz data]# chown biezz:root /data
[root@biezz data]# service vsftpd restart
再次测试,已经可以正常上传到/data目录下文件了,至此vsftpd服务器搭建完成。(同样适用于CentOS 7.x)
[root@biezz data]# ll total 32 -rw-r--r--. 1 root root 0 Nov 10 14:24 aa -rw-r--r--. 1 root root 0 Nov 10 14:24 bb -rw-r--r--. 1 root root 0 Nov 10 14:24 cc -rw-r--r--. 1 biezz biezz 28715 Nov 10 14:43 SSJ.txt
附:Linux下上传和下载
[root@biezz /]# rpm -qa |grep lftp lftp-4.4.8-8.el7_3.2.x86_64 #检查是否有安装lftp,如果没有请用YUM安装lftp
[root@biezz ~]# touch bie
[root@biezz ~]# lftp biezz@192.168.23.129
口令:
lftp biezz@192.168.23.129:~> put bie #上传文件
lftp biezz@192.168.23.129:/>
[root@biezz ~]# cd /
[root@biezz /]# lftp biezz@192.168.23.129
口令:
lftp biezz@192.168.23.129:~> mirror -R ops/ #上传目录
Total: 1 directory, 1 file, 0 symlinks
New: 1 file, 0 symlinks
查看ftp服务器端:
[root@biezz data]# ll
total 36
-rw-r--r--. 1 biezz biezz 0 Nov 10 15:37 bie
drwxr-xr-x. 2 biezz biezz 4096 Nov 10 15:41 ops
-rw-r--r--. 1 biezz biezz 28715 Nov 10 14:43 SSJ.txt
[root@biezz data]# mkdir test
再次切回到客户端:
[root@biezz /]# cd /ops
lftp biezz@192.168.23.129:~>
lftp biezz@192.168.23.129:~> get SSJ.txt #下载文件
28715 bytes transferred
lftp biezz@192.168.23.129:/> mirror test/ #下载目录
Total: 1 directory, 0 files, 0 symlinks
[root@biezz ops]# ll
总用量 32
-rw-r--r--. 1 root root 0 12月 14 19:23 bie
-rw-r--r--. 1 root root 28715 11月 10 14:43 SSJ.txt
drwxr-xr-x. 2 root root 6 12月 14 19:30 test