前言
FTP 是File Transfer Protocol(文件传输协议),
用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。
用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,
并将执行的结果返回到客户机。例如,用户发出一条命令,要求服务器向用户
传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机
器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
FTP一般应用于上传和下载
下载文件就是从远程主机拷贝文件至自己的计算机上;
上传文件就是将文件从自己的计算机中拷贝至远程主机上
vsftpd # 服务端软件
lftp # 客户端软件,提供登陆环境
1.部署ftp服务的服务端
[root@localhost Desktop]# yum install -y vsftpd
[root@localhost Desktop]# yum install -y lftp
[root@localhost Desktop]# systemctl start vsftpd
[root@localhost Desktop]# systemctl enable vsftpd
[root@localhost Desktop]# netstat -antlp | grep vsftpd # 查看到端口说明服务开启成功
[root@localhost Desktop]# firewall-cmd --permanent --add-service=ftp
success
[root@localhost Desktop]# firewall-cmd --reload
success
[root@localhost Desktop]# firewall-cmd --list-all
[root@localhost Desktop]# vim /etc/sysconfig/selinux
7 SELINUX=disabled
[root@localhost Desktop]# getenforce # 查看到更改不生效,必须重启
Enforcing # 开启内核加强型火墙
[root@localhost Desktop]# reboot
[root@localhost Desktop]# getenforce # 重启之后再次查看
Disabled # 禁止服务
2.ftp服务的参数配置
ftp服务的基本信息:
vsftpd # 服务端软件安装包
/var/ftp # 默认发布目录
21/tcp # 协议接口
/etc/vsftpd/vsftpd.conf # 服务配置文件
[root@localhost Desktop]# rpm -qc vsftpd # 查看ftp服务的配置文件
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[root@localhost Desktop]# cd /var/ftp/ # 这是ftp服务的默认发布目录
[root@localhost ftp]# ls
pub
在客户端测试
[root@foundation78 Desktop]# yum install -y lftp # 如果客户端没有这个软件,就下载一个
(1)匿名用户访问(默认允许)
[root@foundation78 Desktop]# lftp 172.25.254.138 # 这是服务端IP
lftp 172.25.254.138:~> ls # 查看到pub目录说明成功登陆
drwxr-xr-x 2 0 0 6 Aug 03 2015 pub
注:匿名用户登陆进去查看到的是默认发布目录里的内容,而且ftp服务对匿名用户的所有权限都禁止,除了可登陆权限和可读权限
(2)本地用户的访问
# 服务端(先建立本机用户)
[root@localhost Desktop]# useradd westos
[root@localhost Desktop]# passwd westos
[root@localhost Desktop]# useradd linux
[root@localhost Desktop]# passwd linux
# 客户端测试
[kiosk@foundation78 Desktop]$ lftp 172.25.254.138 -u westos # 指定本机用户登陆,默认的增删改查的功能都开启
Password:
lftp westos@172.25.254.138:~> ls
lftp westos@172.25.254.138:~> mkdir file
mkdir ok, `file' created
lftp westos@172.25.254.138:~> ls
drwxr-xr-x 2 1001 1001 6 Oct 28 06:39 file
lftp westos@172.25.254.138:~> rm -fr file/
rm ok, `file/' removed
lftp westos@172.25.254.138:~> ls
注:ftp服务对本地用户所有权限都开启,而且本地用户登陆进去的都是自己的本地家目录
3.对所有用户的权限进行管理
报错id的解析:
500 # 文件系统权限过大
530 # 用户认证失败
550 # 服务本身功能未开放
553 # 本地文件系统权限过小
(1)匿名用户
anonymous_enable=YES|NO # 匿名用户是否可以登陆
anon_upload_enable=YES|NO # 匿名用户是否可以上传
anon_world_readable_only=YES|NO # 匿名用户是否可以下载
anon_other_write_enable=YES|NO # 匿名用户是否可以删除
anon_umask=022 # 匿名用户上传的文件的权限
anon_max_rate=102400 # 限制匿名用户下载的速度100k/s
anon_root=/directory # 匿名用户家目录的修改
max_clients=1 # 匿名用户最大连接数
chown_uploads=YES # 指定上传文件的所属用户
chown_username=westos
- 对于anon_world_readable_only的具体使用可以看此处详细解释
# 在客户端用匿名用户登录
[kiosk@founda