Linux的ftp服务

简介:

一.FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。 基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载" (Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至 远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

wKiom1mEgxDieN7YAActLLtn5TA620.png


二.安装ftp

1.配置IP地址

hostnamectl set-hostname ftp_server.example.com

wKioL1mEhBnjLAmYAABBuxDfhpA602.png

2.yum install vsftpd  -y  安装服务

wKioL1mEg7ezhRtCAABMwTHv43U748.png

wKiom1mEg7iQgrolAABOV3tqpms760.png

wKiom1mEhKLw-FwzAAAeD8eCsg8060.png


3.systemctl start vsftpd  启动服务

systemctl enable vsftpd 开机自动启动

wKiom1mEhTGz30oDAABjhezy5cE839.png


4.systemctl start firewalld  设置防火墙允许ftp通过

wKiom1mEhWaSjGQnAAFF8H33mos197.png

wKioL1mEhWeybszoAABZcHlgvpY195.png

或者使用图形界面

firewall-config

wKioL1mFsj-RkGYDAADsvCLTRyY878.png

选择permanent,ftp,点击options,reload完成允许ftp通过


5.setenforce 0 关闭selinux,由于selinux改变配置文件后,需要重新加载内核

wKiom1mEg9yDGkdnAAAbYQmI1BM942.png

wKioL1mEg07h7v7UAADMCaPTO_0644.png

6.reboot

7.lftp 172.25.254.128         能登陆并且显示,表示安装成功

wKiom1mEhemALmqpAAA6L_wzjGY993.png


三.vsftpd文件信息
/var/ftp/pub                          默认发布目录pub
/etc/vsftpd.conf                   配置目录

四.vsftpd服务的配置参数
1.匿名用户设定

匿名用户登陆限制

anonymous_enable=NO | YES     

wKiom1mFTzLSVTC8AAAuD13LH4g307.png

wKioL1mFTzOT03nzAAAykLiG7CA104.png

wKiom1mFTzORSuopAAAxpPJgpgM703.png


匿名用户上传
vim /etc/vsftpd/vsftpd.conf

anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
wKioL1mFT-jAD8WSAABSo5HWSvs451.png


匿名用户下载
anon_world_readable_only=YES|NO   设定参数值为no表示匿名用户可以下载


wKiom1mFj7aiuh5tAAAP-xFLpT8141.png

wKiom1mFj7Ww1DugAACeAGCtpbA413.png




匿名用户删除
anon_other_write_enable=YES|NO    

wKioL1mFUQuw3_lUAAAehlTkie0145.png

wKiom1mFUSDC4WM0AADPP_Urunc854.png


匿名用户建立目录
anon_mkdir_write_enable=YES|NO

wKioL1mFUXLAB0o1AAAWsMV13pI331.png

wKiom1mFUXPwkiIzAABB1QChP6U217.png


匿名用户家目录修改
anon_root=/direcotry

wKiom1mFUenRDKNyAAAeH1AJGK0748.png

wKiom1mFUerirb-MAACzbFbgpkQ234.png


匿名用户上传文件默认权限修改
anon_umask=xxx

wKioL1mFUhrgT4dhAAAPoSyG4HU915.png

wKiom1mFUhuDLAGuAACRB5o7CKM362.png

wKiom1mFUhzSodTOAACfK5OuBH8505.png


匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student

wKiom1mFUkeTsAu2AAAuFkD0JQw320.png

wKioL1mFUkjwRpkmAADRYjoNq68348.png


最大上传速率

anon_max_rate=102400(单位为kb,表示最大传输速度100M)

最大链接数
max_clients=2(表示最多连接2台主机)



2.本地用户设定

本地用户登陆限制

local_enable=YES|NO         

wKiom1mFVE2TX3P_AAA1CRs_t-k359.png

wKioL1mFVC7BkeRHAABvjk1HvHI424.png


write_enable=YES|NO         本地用户写权限限制,如果关闭,本地匿名都无法写入

wKiom1mFVC6zxP7SAAAi43zLEj4234.png


wKioL1mFVHrwjjgrAACcqiWDbGI640.png

wKiom1mFVLyQepxKAACWOJN4-9k438.png


本地用户家目录修改
local_root=/directory

wKiom1mFUvKwS_zdAAAfZmssXvo876.png

wKioL1mFUvPza60HAACejbwQ_KU171.png


本地用户上传文件权限
local_umask=xxx

原本local_umask=022

wKiom1mFU0zQSe_9AACp1tSwoAU060.png

更改umask=002

wKioL1mFU0zy1LJCAAArSzVfixU423.png

权限发生变化

wKioL1mFU03zWMHwAADSGv3A_5Y744.png


限制本地用户浏览/目录
所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*

wKiom1mFU9OQOYA4AAAMELNggAw723.png

wKioL1mFU9PgXEl2AACz0Mt1kro323.png


用户白名单建立
chroot_local_user=YES          可以浏览/目录

chroot_list_enable=YES         启用名单

chroot_list_file=/etc/vsftpd/chroot_list    写入名单内的可以浏览/目录


wKiom1mFU9Tg1XyUAAAMXSSrgo8442.png

wKioL1mFU9SzWKpRAAETJdTBlGY141.png


用户黑名单建立
chroot_local_user=NO             无法浏览/目录
chroot_list_enable=YES          启用名单
chroot_list_file=/etc/vsftpd/chroot_list   写入名单内的无法浏览/目录


限制本地用户登陆
vim /etc/vsftpd/ftpusers            用户永久黑名单
vim /etc/vsftpd/user_list           用户临时黑名单

添加westos用户到/etc/vsftpd/ftpusers  

wKiom1mFWzjh1OmiAAAcqwW7LeM280.png

wKiom1mFWzfzbhKHAABtrk0LZMg466.png

westos用户无法登陆



用户白名单设定
userlist_deny=NO              在/etc/vdftp/vsftpd.conf配置文件里新加 userlist_deny=NO  
/etc/vsftpd/user_list             启用userlist_deny=NO 参数设定后,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp


wKioL1mFWziAAERVAAAwR-Qu11c276.png

wKiom1mFWznyQwYPAAA-5w4ZO7E446.png


wKioL1mFWzmAt-wpAABCtbEAgLU208.png



五.ftp虚拟用户的设定

1.创建虚拟帐号身份
vim /etc/vsftpd/loginusers      编写用户密码文件(文件名称任意)
wKioL1mFXtGSMVE2AAAm38SVhgw151.png
db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db       用hash算法加密文件

wKiom1mFZAXSX1N4AABHExpyoDg072.png
vim /etc/pam.d/ckvsftpd          用pam.d插件关联加密文件和配置文件

wKiom1mFX1CjhozCAABIg6xSO54627.png


vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd
guest_enable=YES

wKiom1mFZ3GhEGv8AAA0Nx9TgtM147.png

使用ftpuser1账户登陆成功

wKioL1mFaE7RfFj2AACH4PmGGwk483.png


在配置文件中加入guest_username=用户,虚拟帐号指定本地身份登陆
guest_username=ftpuser(本地用户)
chmod u-w /home/ftpuser

wKioL1mFX8-xSg9gAABSDJC9Xrc033.png

指定ftp用户登陆


2.虚拟帐号家目录独立设定

建立独立用户目录

wKiom1mFaY-BljFiAADvHnM-Dcw087.png

wKioL1mFaZChLf_CAAAmSUp7Ux4594.png


vim /etc/vsftpd/vsftpd.conf        打开vstfpd配置文件,在最后面写入下面两行配置


local_root=/vuserdir/$USER   不同账户进入自己的独立目录 
user_sub_token=$USER         声明配置文件中的$USER 就是shell中的变量



3.虚拟帐号配置独立权限
vim /etc/vsftpd/vsftpd.conf      打开配置文件
user_config_dir=/etc/vsftpd/userconf    在最后一行写入独立权限配置文件,userconf为一个目录

wKiom1mFaZDw6UbdAABHmVZhs3Y048.png

创建目录

mkdir -p /etc/vsftpd/userconf

在创建目录中新建配置独立的配置文件,文件名为独立用户的用户名

vim /etc/vsftpd/userconf/ftpuser1
在此文件中设定配置文件中的所有参数,此文件的优先级高,写入ftpuser1可以上传文件配置信息

wKiom1mFaZHT_lw5AAAd9DuBSFQ716.png

4.实验结果,ftpuser1可以上传文件,ftpuser2不能上传文件

wKioL1mFaZDiIxIVAAAt5Cikink445.png






      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1953816,如需转载请自行联系原作者





相关文章
|
2月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
281 146
|
3月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
344 11
|
8月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
653 25
|
9月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
264 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
11月前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
748 19
|
11月前
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
4732 7
|
网络协议 安全 Linux
如何配置Linux端的ftp?
如何配置Linux端的ftp?
320 64
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
288 5
linux系统服务二!
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
234 3
linux系统服务!!!
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####