博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FTP
阅读量:6095 次
发布时间:2019-06-20

本文共 3360 字,大约阅读时间需要 11 分钟。

FTP是File Transfer Protocol (文件传输协议)的简称,用于internet上控制文件的双向传输。

FTP也是一个应用程序,基于不同操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
在FTP的使用当中,用户经常遇到两种概念:下载和上传

FTP工作于应用层,监听tcp21号端口,是一种c/s架构的应用程序。

搭建ftp服务

1.安装wget 删掉本地源

[root@hyj ~]# yum install wget -y
[root@hyj ~]# cd /etc/yum.repos.d/
[root@hyj yum.repos.d]# ls
CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-Media.repo
CentOS-Debuginfo.repo CentOS-Sources.repo
[root@hyj yum.repos.d]# rm -rf ./*
[root@hyj yum.repos.d]# ls

2.从网上下载网络源

[root@hyj yum.repos.d]# wget
[root@hyj ~]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@hyj ~]# yum clean all
3.下载安装扩展源
[root@hyj ~]# yum install epel-release -y
4下载安装vsftpd
[root@hyj ~]# yum install vsftpd -y

vsftpd虚拟用户配置

1.创建文本格式的用户名,密码列表,例如添加两个用户hejie,zhengran,密码分别为123,456
[root@hyj ~]# echo 'hejie' >> /etc/vsftpd/vu.list
[root@hyj ~]# echo '123' >> /etc/vsftpd/vu.list
[root@hyj ~]# echo 'zhengran' >> /etc/vsftpd/vu.list
[root@hyj ~]# echo '456' >> /etc/vsftpd/vu.list
[root@hyj ~]# cat /etc/vsftpd/vu.list
hejie
123
zhengran
456

//这里的用户名和密码是一一对应的,前面是账号,后面跟的是密码

//安装db4工具,将刚创建的文本格式用户名、密码文件使用db4工具装换成数据库文件
//-T 表示转换,-t表示加密方式,使用hash算法加密
[root@hyj ~]# yum install db4* -y
[root@hyj ~]# db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db
[root@hyj ~]# ls /etc/vsftpd/
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh vu.db vu.list

//为提高虚拟用户账号文件的安全性,应该将文件权限设置为600,避免数据外泄

[root@hyj ~]# chmod 600 /etc/vsftpd/vu.
[root@hyj ~]# ll /etc/vsftpd/vu.
-rw-------. 1 root root 12288 Aug 12 18:24 /etc/vsftpd/vu.db
-rw-------. 1 root root 23 Aug 12 18:18 /etc/vsftpd/vu.list

//添加虚拟用户账号、创建ftp根目录。例如将要使用的ftp根目录设置为/var/ftproot,映射账号的名称为vftp,可进行如下操作

[root@hyj ~]# useradd -d /var/ftproot -s /sbin/nologin vftp
[root@hyj ~]# chmod 755 /var/ftproot/
[root@hyj ~]# ll /var/ftproot/ -d
drwxr-xr-x. 2 vftp vftp 62 Aug 12 18:31 /var/ftproot/

//为虚拟用户建立PAM认证

[root@hyj ~]# vi /etc/pam.d/vsftpd
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vu
account required pam_userdb.so db=/etc/vsftpd/vu

//修改vsftpd配置文件

[root@hyj ~]# cat >> /etc/vsftpd/vsftpd.conf << EOF

guest_enable=YES //是否开启虚拟用户

guest_username=vftp //虚拟用户是谁
user_config_dir=/etc/vsftpd/vusers_dir // 授权ftp虚拟用户所在目录
allow_writeable_chroot=YES //允许被禁锢的用户家目录有写权限
EOF

//有了上述配置后,就可以在/etc/vsftpd/vusers_dir目录中为每个虚拟用户分别建立配置文件了

例如,若要使虚拟用户tom能够上传文件,创建目录,而jerry只有默认的下载权限
[root@hyj ~]# mkdir /etc/vsftpd/vusers_dir
[root@hyj ~]# ll /etc/vsftpd/
total 32
-rw-------. 1 root root 125 Aug 3 2017 ftpusers
-rw-------. 1 root root 361 Aug 3 2017 user_list
-rw-------. 1 root root 5133 Aug 12 18:49 vsftpd.conf
-rwxr--r--. 1 root root 338 Aug 3 2017 vsftpd_conf_migrate.sh
-rw-------. 1 root root 12288 Aug 12 18:24 vu.db
-rw-------. 1 root root 23 Aug 12 18:18 vu.list
drwxr-xr-x. 2 root root 6 Aug 12 19:14 vusers_dir

//设置hejie用户可上传文件,创建目录

[root@hyj ~]# echo 'anon_upload_enable=YES' >> /etc/vsftpd/vusers_dir/hejie
[root@hyj ~]# echo 'anon_mkdir_enable=YES' >> /etc/vsftpd/vusers_dir/hejie
//设置zhengran用户只有默认的下载权限,只需创建一个名为zhengran的空文件即可
root@hyj ~]# touch /etc/vsftpd/vusers_dir/zhengran

//关闭防火墙 启动服务 查看端口起来没

[root@hyj ~]# systemctl start vsftpd
[root@hyj ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :22 :
LISTEN 0 100 127.0.0.1:25
:
LISTEN 0 32 :::21 :::
LISTEN 0 128 :::22 :::
LISTEN 0 100 ::1:25 :::

转载于:https://blog.51cto.com/13729085/2161080

你可能感兴趣的文章
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
SqlServer作业指定目标服务器
查看>>
UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
查看>>
User implements HttpSessionBindingListener
查看>>
抽象工厂方法
查看>>
ubuntu apt-get 安装 lnmp
查看>>
焊盘 往同一个方向增加 固定的长度方法 总结
查看>>
eclipse的maven、Scala环境搭建
查看>>
架构师之路(一)- 什么是软件架构
查看>>
jquery的冒泡和默认行为
查看>>
Check failed: error == cudaSuccess (7 vs. 0) too many resources requested for launch
查看>>
USACO 土地购买
查看>>
【原创】远景能源面试--一面
查看>>
B1010.一元多项式求导(25)
查看>>
10、程序员和编译器之间的关系
查看>>
前端学习之正则表达式
查看>>