在一台服务器上搭建ftp服务
举例使用172.16.1.31
1、需要安装vsftbd服务
yum -y install vsftpd
2、创建一个linux的用户(ftp使用linux的用户信息,不靠谱)
[root@nfs-31 ~]# useradd ftp01
[root@nfs-31 ~]# echo "123456" | passwd --stdin ftp01
Changing password for user ftp01.
passwd: all authentication tokens updated successfully.
3、创建一个共享的文件夹并创建几个测试文件
[root@nfs-31 ~]# mkdir /test_ftp/
[root@nfs-31 ~]# touch /test_ftp/1.png
[root@nfs-31 ~]# touch /test_ftp/12.jpg
[root@nfs-31 ~]# ls /test_ftp/
12.jpg 1.png
4、修改共享文件的权限为自定义用户
[root@nfs-31 ~]# chown -R ftp01:ftp01 /test_ftp
5、查看共享文件的所属用户
[root@nfs-31 /]# ll -d /test_ftp
drwxr-xr-x. 2 ftp01 ftp01 42 Nov 22 19:12 /test_ftp
6、修改ftp配置文件,设置用于共享的目录
6.1 查看配置文件地址/etc/vsftpd/vsftpd.conf
[root@nfs-31 ~]# rpm -ql vsftpd | grep '.conf$'
/etc/vsftpd/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
6.2 修改配置文件 ——找出和匿名用户相关的配置参数
将配置文件中anonymous_enable=YES设置为NO,不允许匿名用户查看
[root@nfs-31 ~]# grep '^anonymous' /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
6.3 修改配置文件——添加自定义的共享文件夹配置参数
直接在文件最低下,添加如下配置
# 配置解释
# local_root=/data/kefu 指定本地用户的默认数据根目录
# chroot_local_user=YES 禁锢本地用户的默认数据目录(禁止用户切换到其他目录)
# allow_writeable_chroot=YES 允许ftp用户登录后,可以创建数据
# ftp用户,ops01登录ftp之后,只能看到/test_0224这个文件夹下的数据
chroot_local_user=YES用户只能查看当前共享文件夹下内容
chroot_local_user=NO用户可以查看ftp所在服务器下的其他文件内容
## by myself
local_root=/test_ftp/
chroot_local_user=YES
allow_writeable_chroot=YES
7、重启vsftp服务
[root@nfs-31 ~]#systemctl restart vsftpd
[root@nfs-31 ~]#ps -ef|grep vsftpd
root 2221 1 0 15:01 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 2226 1168 0 15:02 pts/0 00:00:00 grep --color=auto vsftpd
另一台服务器使用客户端,验证ftp的登录,数据查看
举例使用172.16.1.41
1、安装ftp服务
[root@rsync-41 /]# yum -y install ftp
2、连接ftp
[root@rsync-41 /]# ftp 172.16.1.31
Connected to 172.16.1.31 (172.16.1.31).
220 (vsFTPd 3.0.2)
Name (172.16.1.31:root): ftp01
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
3、ftp里面使用的命令
ls 查看文件下的内容
cd 跳转到指定目录下
pwd 查看当前目录
put 上传
get 下载
? 查看命令
exit 退出ftp
ls显示文件内容
报错的原因vim /etc/selinux/config 修改SELINUX=disable,重启电脑
#测试ls功能
ftp> ls
227 Entering Passive Mode (172,16,1,31,158,77).
150 Here comes the directory listing.
-rw-r--r-- 1 1000 1000 0 Nov 22 11:12 411111.png
-rw-r--r-- 1 0 0 0 Nov 22 10:40 wenjie.png
ftp> ?
Commands may be abbreviated. Commands are:
! debug mdir sendport site
$ dir mget put size
account disconnect mkdir pwd status
append exit mls quit struct
ascii form mode quote system
bell get modtime recv sunique
binary glob mput reget tenex
bye hash newer rstatus tick
case help nmap rhelp trace
cd idle nlist rename type
cdup image ntrans reset user
chmod lcd open restart umask
close ls prompt rmdir verbose
cr macdef passive runique ?
delete mdelete proxy send
#get命令测试
ftp> get
(remote-file) 411111.png
(local-file) 41111.png
local: 41111.png remote: 411111.png
227 Entering Passive Mode (172,16,1,31,90,89).
150 Opening BINARY mode data connection for 411111.png (0 bytes).
226 Transfer complete.
ftp> exit
221 Goodbye.
[root@rsync-41 /]# ^C
[root@rsync-41 /]# ls
22222.png 41111.png bin boot dev etc home lib lib64 media
#put(上传命令测试)
ftp> put
(local-file) 22222.png
(remote-file) 22222.png
local: 22222.png remote: 22222.png
227 Entering Passive Mode (172,16,1,31,148,148).
150 Ok to send data.
226 Transfer complete.
ftp> ls
227 Entering Passive Mode (172,16,1,31,247,76).
150 Here comes the directory listing.
-rw-r--r-- 1 1000 1000 0 Nov 22 16:53 22222.png
-rw-r--r-- 1 1000 1000 0 Nov 22 11:12 411111.png
-rw-r--r-- 1 0 0 0 Nov 22 10:40 wenjie.png
226 Directory send OK.