首先创建两台虚拟机一台为客户机一台为服务器,我的两台均为rhel6.5
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
**
Linux下的ftp服务简介
**
不同等级用户身份
1.实体用户:real user
2.访客:guest
3.匿名用户:anonymous
linux中使用的是vsftpd
vsftpd的全名为very secure FTP daemon ,意思为非常安全
实验
关闭防火墙和selinux(服务器和客户端都自行执行这步)
虚拟机设置网络配置如下都为VMnet1 以便两个虚拟机在同一网段
一.服务器端
配置主机IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
重启网络服务
service network restart
挂载镜像 mount /dev/sr0 /mnt
下载 rpm -ivh /mnt/Packages/ftp-0.17-54.el6.x86_64.rpm (自动TAB补全即可)
也可使用yum安装,yum配置方法请看我的另一篇博客
查看ftp服务是否安装好 rpm -qa |grep vsftpd(这个即为查看当前版本)
重启FTP服务 service vsftpd restart
查看FTP服务端口 发现21端口已经开启 (命令通道的ftp 端口默认为21 数据传输的ftp-data端口默认为20)
二.客户机端
配置主机IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
重启网络服务
service network restart
挂载镜像 mount /dev/sr0 /mnt/
安装ftp服务
使用匿名用户登录
FTP中默认的两个匿名用户
Name:ftp password:空
Name:anonymous password:guest
Cd / 进入根目录 然后ls 发现没有显示文件,说明匿名用户不支持看根目录
登录另一个匿名账号也是一样
也可以使用浏览器登录
在服务器创建新用户useradd test1 passwd test1
使用新用户登录发现能进入根目录
服务器操作:
创建虚拟用户
新建ftphome目录: mkdir /ftphome
新建一个ftptest用户并加入ftphome/ftptest下: useradd -d /ftphome/ftptest ftptest
进入 /etc/vsftpd/ 并新建一个login.txt文件
内容如下 表明新建了六个虚拟用户
分别为账号和密码
将TXT文件转换为db文件db_load -T -t hash -f login.txt /etc/vsftpd/login.db
判断文件格式 file login.db
进入该目录cd /etc/pam.d (该文件主要用来作为身份认证,还有阻挡一些用户身份的功能)
vim vsftpd 修改如下图
vim /etc/vsftpd/vsftpd.conf
修改成如下图中
|
cd /etc/vsftpd
新建文件 mkdir vuser_conf
cd /etc/vsftpd/vuser_conf
接下来的步骤可自行添加权限然后自行验证
vim alice 内容为全空(无权限)
vim bob (为可读权限)
Vim jack (权限为可读,上传,创建)
Vim rose (权限为可读,上传,创建,删除)
重启FTP服务
进入/ftphome目录,将ftptest文件权限改为777
在ftptest下创建cc.txt为了后面验证
cc.txt内容随意
在客户机验证
使用Alice登陆验证
使用bob登陆验证
接下来自己可以自行验证其他用户
但是不管怎样都无法进入根目录,安全性有所保障