栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux基础篇·FTP

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux基础篇·FTP

传输

模式

  1. 控制连接:TCP21,用于发送FTP命令信息;
  2. 数据连接:TCP20,用于上传、下载数据;

主动模式:服务器主动发起数据连接;

被动模式:服务器被动等待数据连接;

  1. 传输模式

文本模式:ASCLL模式,在传输文件时使用ASCLL标准字符序列,一般只用于纯文本文件的传输。

二进制模式:Binary模式,不会转换文件中的字符序列,更适合传输程序,图片等非纯文字字符的文件;

用户

类型

  1. 匿名用户:用户名为ftp或anonymous,提供任意密码(包括空密码)都可以通过服务器的验证。一般用于公用文件的下载,提供免费的软件、学习资源下载的站点。
  2. 本地用户:直接使用本地的系统账号进行验证。
  3. 虚拟用户:通过一份独立的用户数据库文件进行登录验证,讲FTP账户于Linux系统账户的关联性降至最低,为系统提供更好的安全性。

软件

种类

Windows:FileZilla Server、Serv-U等;

Linux/Unix:vsftpd

客户端工具的种类

Windows:ftp、CuteFTP、FlashFXP、LeapFTP、Filezilla等

Linux/Unix:ftp

匿名访问FTP服务器

环境

两台centos6,一台做服务器server,一台做客户机client

1.

[root@server ~]# rpm -qa vsftpd

//查看是否存在rpm安装的vsftpd软甲包

[root@server ~]# yum -y install vsftpd

//安装vsftpd软件包

2.

[root@server ~]# cd /var/ftp/

//进入ftp目录

//查看是否存在pub目录

[root@server ftp]# chown ftp pub/

//更改pub目录的属主为ftp

//pub目录作用是作为共享目录,来存放可以让用户访问的数据资源。

3.

[root@server ftp]# cd /etc/vsftpd/

//进入ftp配置目录

//查看目录中的内容

[root@server vsftpd]# cp vsftpd.conf vsftpd.conf.$(date +%Y%m%d%H%M)

//以日期为文件名,备份主配置文件(也可以不用日期,直接 以.bak结尾)

[root@server vsftpd]# vim vsftpd.conf

//进入主配置文件

启用这两行命令

修改添加命令

[root@server vsftpd]# /etc/init.d/vsftpd start

//重启服务

[root@server vsftpd]# netstat -antup | grep 'vsftpd'

//查看端口是否开启

4.

[root@server vsftpd]# cd /var/ftp/pub

//进入共享目录

[root@server pub]# touch {1..4}.txt

//创建文件用来共享测试

5.

[root@client ~]# yum -y install ftp

//客户端安装ftp程序

[root@server ftp]# service iptables stop

//在客户端和服务端双方均关闭防火墙

[root@client ~]# ftp 192.168.200.4

//客户端输入ftp+服务器ip登录ftp服务器

//在账号出输入ftp,密码直接因为没有设置,默认为空,直接回车即可。

ftp> ls

//输入ls查看当前目录中的内容

ftp> cd pub

//进入pub共享目录

//可以看到服务端共享目录中用于共享测试的共享文件

ftp> help

//输入help查看ftp支持的命令(ftp命令并不同linux相同,只支持部分)

ftp> cd pub

//进入共享目录

ftp> get 1.txt

//下载1.txt文件

另打开一个窗口,查看下载的文件,默认下载到等录用户的家目录

ftp> put cmake-2.8.6.tar.gz

//上传压缩包

ftp> mkdir abc

//在共享目录中创建一个目录

ftp> delete 1.txt

//删除1.txt文件

ftp> bye

//退出ftp

匿名用户具有新建目录,上传,下载,删除文件的权限,新建目录默认权限为755,上传文件默认权限为644

本地用户访问FTP服务器

ftp服务器有两个黑名单,即:ftpusers和user_list

ftpusers:FTP服务器中的黑名单,优先级高于user_list文件

user_list:默认情况下也是黑名单,但是可以通过修改vsftpd.conf主配置文件中添加userlist_enable=YES,userlist_deny=NO时,user_list用户列表将变成白名单,此时仅此名单内用户可以访问服务器,

1.

[root@server vsftpd]# mv vsftpd.conf.202012260031 vsftpd.conf

//恢复配置文件至默认状态

[root@server vsftpd]# vim vsftpd.conf

//进入配置文件进行修改

将第96行的内容开启,表示文件共享目录默认存储在本地用户的家目录

[root@server vsftpd]# /etc/init.d/vsftpd reload

//重启服务

2.

[root@server vsftpd]# useradd xiaofa

//创建本地用户

[root@server vsftpd]# passwd xiaofa

//设置本地用户密码为123123

查看是否存在创建用户的家目录

3.

[root@client ~]# ftp 192.168.200.4

//客户端登录ftp

//输入创建的账号,密码即可登录(操作同上)

ftp> put cmake-2.8.6.tar.gz

//上传文件到共享目录

进入服务器本地用户家目录进行查看

4.

[root@server xiaofa]# cd /etc/vsftpd/

//进入ftp配置目录

[root@server vsftpd]# vim ftpusers

//这个文件是ftp服务器的黑名单,优先级最高,放入其中的账户将不能再登录

[root@server vsftpd]# /etc/init.d/vsftpd reload

//重启服务

//输入被拉黑的账号,输入密码,登录失败

虚拟用户访问FTP服务端

1.

[root@server vsftpd]# mv vsftpd.conf.bak vsftpd.conf

//还原配置文件

[root@server vsftpd]# cp vsftpd.conf vsftpd.conf.bak

//备份配置文件

2.

[root@server vsftpd]# which db_load

//查看是否又which db_load命令

[root@server vsftpd]# vim ./vusers.list

//新建一个虚拟用户账号密码列表文件

[root@server vsftpd]# db_load -T -t hash -f vusers.list vusers.db

//使用算法加密密码列表文件,并设置新的名称

[root@server vsftpd]# chmod 600 vusers.db

//更改文件权限,只让属主读写

3.

[root@server vsftpd]# useradd -d /var/ftproot/ -s /sbin/nologin virtual

//创建一个虚拟映射账号,指定其家目录

(该账号作用为虚拟映射账号,也就是所使用的登录账号都会先转成该账号进行处理)

[root@server vsftpd]# mkdir -p /var/ftproot

//创建用户家目录

[root@server vsftpd]# chmod 755 /var/ftproot/

//赋予文件755权限

4.

[root@server vsftpd]# vim /etc/pam.d/vsftpd.vu

auth required  pam_userdb.so db=/etc/vsftpd/vusers

account required pam_userdb.so db=/etc/vsftpd/vusers

//创建pam认证文件

5.

[root@server vsftpd]# vim vsftpd.conf

//进入配置文件进行修改

关闭匿名访问

修改并添加内容

pam_service_name=vsftpd.vu

guest_enable=YES

guest_username=virtual

[root@server vsftpd]# /etc/init.d/vsftpd reload

//重启服务

6.

[root@server vsftpd]# cd /var/ftproot/

//进入ftproot目录

[root@server ftproot]# touch ceshi{01..03}

//创建几个文件用于ftp测试

[root@client ~]# ftp 192.168.200.4

//客户机登录测试

一般来说虚拟账号共享的是同一个目录,但是也可以让不同账号拥有不同的目录,操作如下:

(1)

[root@server ~]# cd /etc/vsftpd/

//进入ftp配置目录

[root@server vsftpd]# mkdir ./vusers.dir

//创建一个虚拟目录

[root@server vsftpd]# cd ./vusers.dir/

//进入虚拟目录

[root@server vusers.dir]# touch xiaofa shitou jie yasuo

//创建用户配置文件

[root@server vusers.dir]# vim xiaofa

//进入xiaofa配置文件进行修改(此处举一个例子,其余操作相似)

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

anon_max_rate=1

local_root=/var/xiaofa

[root@server vusers.dir]# mkdir -p /var/xiaofa

[root@server vusers.dir]# mkdir -p /var/shitou

[root@server vusers.dir]# mkdir -p /var/jie

[root@server vusers.dir]# mkdir -p /var/yasuo

//为各个用户创建保存文件(只修改xiaofa用户的即可,因为上面只给出了小法配置文件的例子,当然也可以照着临摹)

[root@server vsftpd]# chown virtual /var/xiaofa/

[root@server vsftpd]# chown virtual /var/shitou/

[root@server vsftpd]# chown virtual /var/jie/

[root@server vsftpd]# chown virtual /var/yasuo/

//更改各个用户下载路径的属主(只修改xiaofa用户的即可,因为上面只给出了小法配置文件的例子,当然也可以照着临摹)

(2)

[root@server vsftpd]# vim vsftpd.conf

//修改配置文件,添加新内容(关于anon_umask=022这条内容,上面有,但是没有向上翻,因为注释掉了,所以直接添加也是可以的)

[root@server vsftpd]# /etc/init.d/vsftpd reload

//重启服务

(3)

[root@server vsftpd]# cd /var/xiaofa

//进入xiaofa资源目录

[root@server xiaofa]# touch xiaofa{01..03}

//创建文件,用于测试

(4)

[root@client ~]# ftp 192.168.200.4

//登录xiaofa账号,输入密码进行测试

//ls查询,可以看到,xiaofa账户登录后的资源目录已经成为/var/xiaofa目录,所以该目录中的内容也可以清楚看到。

//在ftp客户端删除xiaofa目录资源,然后服务器查看

成功

不同账号独立目录,不同权限部署完成。

2021-2-2

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/963101.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号