本文是在课程课件基础上修改的学习笔记
课程原地址:https://www.bilibili.com/video/BV1nW411L7xm
若有侵删
运维基本功(一):Linux系统安装
运维基本功(二):Linux基本命令
运维基本功(三):Linux文件管理
运维基本功(四):Linux文件管理-Vim编辑器概述
运维基本功(五):Linux文件管理-用户管理
运维基本功(六):Linux用户管理-远程管理
运维基本功(七):Linux的权限管理操做
运维基本功(八):Linux自有服务与软件包管理
运维基本功(九): Linux自有服务-防火墙&计划任务
运维基本功(十): Linux计划任务以及进程检测与控制
运维基本功(十一): LAMP项目部署实战
运维基本功(十二): Linux命令回顾与扩展
运维基本功(十三): 再谈用户组管理
运维基本功(十四):Linux下yum源配置实战
运维基本功(十五):Linux系统优化基础
运维基本功(十六):远程管理SSH服务
运维基本功(十七):远程管理SSH服务免密登陆解决方案
运维基本功(十八): Linux系统下数据同步服务RSYNC解决方案
运维基本功(十九): 文件共享服务之FTP解决方案linux
某创业公司刚刚起步,随着业务量的增多,咨询和投诉的用户也愈来愈多,公司的客服部门由原来的2个增长到5个。客服部门平时须要处理大量的用户反馈,不论是邮件,仍是QQ,仍是电话,客服人员都会针对每一次的用户反馈作详细的记录 ,可是因为客观缘由,客服人员没有成熟稳定的客户服务系统,因此但愿运维部门可以协助搭建一个文件共享服务来管理这些文档,而且随时跟踪客户的反馈状况。web
FTP(File Transfer Protocol)是一种应用很是普遍而且古老的一个互联网文件传输协议。shell
文件传输:文件上传与文件下载vim
FTP软件名称 => vsftpd => vs(very secure ftp daemon)浏览器
在FTP服务中,其一共拥有两种模式(主动模式 + 被动模式)服务器
参考点,FTP的服务器端。若是是FTP服务器端主动链接客户端=>主动模式,若是是客户端主动链接FTP服务器端=>被动模式。架构
cmd:命令端口(发送FTP请求)app
data:数据端口(后期用于传输数据)运维
1. 客户端打开大于1023的随机命令端口和大于1023的随机数据端口向服务的的21号端口发起请求 2. 服务端的21号命令端口响应客户端的随机命令端口 3. 服务端的20号端口主动请求链接客户端的随机数据端口 4. 客户端的随机数据端口进行确认
1. 客户端打开大于1023的随机命令端口和大于1023的随机数据端口向服务的的21号端口发起请求 2. 服务端的21号命令端口响应客户端的随机命令端口 3. 客户端主动链接服务端打开的大于1023的随机数据端口 4. 服务端进行确认
FTP默认使用的就是被动模式!tcp
1. 关闭防火墙和selinux 2. 配置yum源(mount /dev/sr0 /mnt) 3. 软件三部曲 4. 了解配置文件 5. 根据需求修改配置文件来完成服务的搭建 6. 启动服务,开机自启动 7. 测试验证
第一步:关闭防火墙与SELinux
# systemctl stop firewalld # systemctl disable firewalld # setenforce 0 # vim /etc/selinux/config SELINUX=disabled
第二步:配置YUM源
有网配置公网YUM源(阿里、清华、华为),没网就配置本地YUM源 # mount /dev/sr0 /mnt # yum clean all # yum makecache
第三步:安装vsftpd软件(FTP => vsftpd)
# yum install vsftpd -y
第四步:启动ftp服务并添加到开机启动项中
# systemctl start vsftpd # systemctl enable vsftpd
第五步:测试FTP是否安装成功
# ifconfig ens33 inet 10.1.1.10 netmask 255.255.255.0 broadcast 10.1.1.255
☆ 基于浏览器的访问
☆ 基于Windows资源管理器的访问
☆ 基于FlashFxp、FileZilla软件
☆ 基于ftp以及lftp命令进行链接(Linux与Linux之间的FTP文件传输)
yum install ftp lftp -y # ftp 10.1.1.10
在Server服务器端,使用rpm -ql vsftpd
# rpm -ql vsftpd /usr/lib/systemd/system/vsftpd.service 启动脚本 /etc/vsftpd 配置文件的目录 /etc/vsftpd/ftpusers 用户列表文件,黑名单 /etc/vsftpd/user_list 用户列表文件,可黑可白(默认是黑名单) /etc/vsftpd/vsftpd.conf 配置文件(主配置文件) /usr/sbin/vsftpd 程序自己(二进制的命令) /var/ftp 匿名用户的默认数据根目录 /var/ftp/pub 匿名用户的扩展数据目录
vsftpd配置文件详解:
# grep -v ^# /etc/vsftpd/vsftpd.conf anonymous_enable=YES 支持匿名用户访问 local_enable=YES 支持非匿名用户,普通帐号登陆,默认进入到本身家目录 write_enable=YES 写总开关 local_umask=022 反掩码 file:644 rw- r-- r-- dir:755 dirmessage_enable=YES 启用消息功能 xferlog_enable=YES 开启或启用xferlog日志 connect_from_port_20=YES 支持主动模式(默认被动模式) xferlog_std_format=YES xferlog日志格式 listen=YES ftp服务独立模式下的监听 pam_service_name=vsftpd 指定认证文件 userlist_enable=YES 启用用户列表 tcp_wrappers=YES 支持tcp_wrappers功能(FTP限速操做)
# man 5 vsftpd.conf
简单来讲:根据咱们所学的内容(FTP)搭建一个客户服务系统(主要涉及客服资料上传与下载)
1. 客服人员必须使用用户名密码(kefu/123)的方式登陆服务器来下载相应文档 2. 不容许匿名用户访问 3. 客服部门的相关文档保存在指定的目录里/data/kefu local_root=/data/kefu 4. 客服用户使用用户kefu/123登陆后就只能在默认的/data/kefu目录里活动
# useradd kefu # echo 123 |passwd --stdin kefu
# vim /etc/vsftpd/vsftpd.conf
12行 anonymous_enable=NO
配置修改完毕后,必定要重启vsftpd服务
# systemctl restart vsftpd
# mkdir /data/kefu -p # vim /etc/vsftpd/vsftpd.conf 17行 local_root=/data/kefu
禁锢kefu用户只能在/data/kefu目录下
# vim /etc/vsftp/vsftpd.conf
18行 chroot_local_user=YES
配置修改完毕后,必定要重启vsftpd服务
# systemctl restart vsftpd
以上问题主要出如今FTP2.3.5之后的版本中,固然你可使用
# rpm -qi vsftpd 查看版本信息
解决方案:
① 去除写权限(治标不治本)
# chmod a-w /home/dhj
② 核心解决方案,添加一个选项
# vim /etc/vsftpd/vsftpd.conf19行 allow_writeable_chroot=YES
之因此没法上传,主要缘由在于kefu这个帐号对于/data/kefu文件夹没有w写权限
# setfacl -R -m u:kefu:rwx /data/kefu# systemctl restart vsftpd
18行 chroot_local_user=YES 禁锢全部用户
需求:咱们能不能给一小部分用户开通非禁锢权限。
# vim /etc/vsftpd/vsftpd.conf105行 chroot_list_enable=YES 开启用户列表文件107行 chroot_list_file=/etc/vsftpd/chroot_list 指定用户列表文件echo kefu >> /etc/vsftpd/chroot_list 表明客服这个帐号不会被禁锢在指定目录# systemctl restart vsftpd