linux初学者-ftp篇(一)
FTP是文件传输协议,是用于Internet上的控制文件的双向传输。用户可以通过客户机程序从远程主机上下载或者向远程主机上传文件。
linux系统中,如果不了解SELINUX,需要将SELINUX下的enforing改为disabled,否则在进行上传或者下载时会有影响。
1、vsftpd服务的安装
在有yum源的前提下,输入"yum install vsftpd.x86_64 lftp.x86_64 -y"安装vsftpd服务,"vsftpd"是用来发布文件的,"lftp"是用来访问其他客户端的。完成后输入"systemctl start vsftpd"开启vsftpd服务,输入"systemctl enable vsftpd"使得开机启动服务。
可以输入"lftp ip"来验证是否可用。
这样配置完成后,其他用户是无法通过FTP访问这台主机的vsftpd服务的,因为防火墙没有允许此服务。需要进行防火墙配置,输入"firewall-config"进入防火墙图形管理界面,将上方的"Runtime"改为"Permanent",选中"public"下的"ftp",完成后点击"Options"选择其中的"Reload Firewalld"即可。至此其他主机就可以访问这台主机的vsftpd服务了。
2、本机访问的权限限制
可以编辑vsftpd服务的配置文件"/etc/vsftpd/vsftpd.conf"来对本机用户的访问进行限制。
如下图所示,将"anonymous_enable=YES"中的"YES"改为"NO",则匿名用户将无法登陆。
将"local_enable=YES"中的"YES"改为"NO",则本地用户将不能登陆。
将"write_enable=YES"中的"YES"改为"NO",则本地用户的写入权限将被取消,即无法进行上传和删除。
3、匿名用户的限制
由下图可以看出,匿名用户登陆默认没有上传权限。如果匿名用户需要上传文件,就需要将"/etc/vsftpd/vsftpd.conf"文件中第29行的"anon_upload_enable=YES"打开,然后输入"chgrp ftp /var/ftp/pub"改变默认目录的用户组,并为了安全输入"chmod 775 /var/ftp/pub",给用户组和所有人以读写权力。完成后,输入"systemctl restart vsftpd"重启服务即可使匿名用户上传文件。
匿名用户本身是对vsftpd服务没有写权限的,即不能重命名和删除文件。如果需要,可以在配置文件中输入"anon_other_write_enable=YES",如下图所示,重启服务后,匿名用户就可以重命名和删除文件了。
匿名用户默认没有建立目录的权限,如果需要建立目录的权限,则需要配置文件中第34行的"anon_mkdir_write_enable=YES"开启,重启服务就可以在访问时创建目录了。
匿名用户默认没有下载文件的权限,如果需要下载,就需要在配置文件中输入"anon_world_readable_only=NO",重启服务后,匿名用户就可以下载文件了。
匿名用户登陆后的默认目录在"/var/ftp"下,如果需要更改默认登陆目录,则需要在配置文件中输入"anon_root=/目录",此目录必须是存在的目录,如下图中的"/we",并在其中建立"linux{1..5}"子目录,重启服务后,再次匿名登陆默认目录就为设定的目录。
如下图所示,匿名用户默认上传文件的权限为"600",如果需要改变上传文件的权限,则需要在配置文件中输入"anon_umask=022",权限可以自己设定,此处"022"只是举例,重启服务后重新上传文件,则文件权限就会改变。
如下图所示,匿名用户上传文件后,文件的所有人id为14,即为ftp,如果需要改变上传文件的所有人,则需要开启配置文件中的第52行"chown_uploads=YES"和第53行"chown_username=whoever",并且把"whoever"改为用户名称,例如"we"。完成后重启服务,上传文件后文件的所有人就会变为"we"。
但是需要注意的是,开启文件上传所有人变更后,会使得之前设置的"anon_umask=022"失效,如果需要改变上传文件权限,就需要在配置文件中输入"chown_uploads_mode=0644",在其中输入文件上传后的权限"0644",而不是保留权限"umask"。
有时候需要对匿名用户的下载速度进行限定,如下图所示,下载速度为"68.68M/s",在配置文件中输入"anon_max_rate=xxxxxx"即可设置最大下载速度,xxxxx为字节数,例如下图设置的"102400"即是最大下载速度为"100K/s"。重启服务后生效。
也可以通过在配置文件中输入"max_clients=x"来设置最多可以有x个用户同时连接。
4、普通用户的限制
普通用户登陆时的写权限和下载权限还有上传权限都是默认开启的,普通用户登陆后所在位置为自己的家目录,如果需要改变这个目录,与匿名用户类似,在配置文件中输入"local_root=/目录"。
由下图可以看出,在不进行设定时,普通用户可以直接进入所访问主机的根目录,这无疑是非常危险的,所以需要将普通用户锁定在自己的家目录当中。将配置文件中第105行的"chroot_local_user=YES",则普通用户将只能被锁定在自己的家目录当中,不能进入其他目录。
上述设置对象为全部普通用户,如果需要对一些用户进行设定,就可以进行家目录锁定的白名单或者黑名单的设定。
白名单的设定是"chroot_local_user=YES"时,开启第106行"chroot_list_enable=YES"和第108行"vim /etc/vsftpd/chroot_list","/etc/vsftpd/chroot_list"这个文件是不存在的,需要自己建立,如下图所示,在此文件中没有写入任何用户时,所有用户都被锁定在家目录中,在其中输入用户名称,如输入"we",则we用户就可以访问其他目录了,其他用户则不可以。
黑名单的设定时将"chroot_local_user=YES"中的"YES"改为"NO",此时名单中的we用户就会被锁定在家目录中,而其他用户没有限制。
linux初学者-ftp篇(一)的更多相关文章
- linux初学者-SElinux篇
linux初学者-SElinux篇 SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统.对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的, ...
- linux初学者-firewall篇
linux初学者-firewall篇 firewalld是防火墙的另一种程序,与iptables相同,但是使用起来要比iptables简单的点,不需要了解3张表和5条链也可以使用. 1.firewa ...
- linux初学者-iptables篇
linux初学者-iptables篇 iptables是防火墙的一种,是用来设置.维护和检查linux内核的IP过滤规则的,可以完成封包过滤.封包重定向和网络地址转换(NAT)等功能. iptabl ...
- linux初学者-mail篇
linux初学者-mail篇 邮件是在生活中比较常用的一个工具,在linux系统中的邮件也是.在linux中,邮件的发送所用的服务时postfix,邮件的接收所用的服务是pop(110端口).ima ...
- linux初学者-Apache篇
linux初学者-Apache篇 Apache提供了超文本传输协议http,httpd是Apache超文本传输协议的主服务器.下文将对httpd的安装和配置进行简单的叙述. ...
- linux初学者-iscsi篇
linux初学者-iscsi篇 之前介绍过网络文件共享系统NFS和CIFS.在系统中,设备也是可以共享的,这就是iSCSI,它可以用来建立和管理IP存储设备.主机和客户机等之间的相互 ...
- linux初学者-磁盘阵列篇
linux初学者-磁盘阵列篇 在磁盘的使用中,有时候需要提高磁盘的读写数据速度,就要用到磁盘组——raid,也就是磁盘阵列. 磁盘阵列是由最少两块以上的磁盘组成的,raid有许多模式,在这里将介绍其中 ...
- linux初学者-进程篇
linux初学者-进程篇 不管是windows还是linux,都有进程,那么什么是进程呢?进程就是cpu未完成的工作.下面会介绍一些关于系统中进程的查看以及管理的方法. 1.命令 1.1.命令使用 查 ...
- Linux之FTP篇
内容简介: vsftpd的安装 目录介绍 配置参数解释 锁定用户目录 其他用户不能登录 -------------------------------------------------------- ...
随机推荐
- VS让人纠结的Release和网站一键发布
这篇文章不是讲什么知识点,而是开发过程中遇到的问题,一:希望博友看到后知道的给解释一下:二:自己记录一下,下次有时间好好研究一下. 说实话这个问题已经反反复复好几次了,每次都解决不了,都是已另一种方式 ...
- 测试链接服务器sql 语句
sp_addlinkedsrvlogin 创建或更新本地 Microsoft® SQL Server™ 实例上的登录与链接服务器上远程登录之间的映射. 语法 sp_addlinkedsrvlogin ...
- 使用 Cake 推送 NuGet 包到 AzureDevops 的 Artifacts 上
前言 大家好,我最近在想如何提交代码的时候自动的打包 NuGet 然后发布到 AzureDevOps 中的 Artifacts,在这个过程中踩了很多坑,也走了很多弯路,所以这次篇文章就是将我探索的结果 ...
- pip与conda的区别
pip和conda到底有什么不一样? 今天看到我的foreman开始报错去询问才发现.我们的python包管理工具已经从pip整体迁移到了conda..最近的迁移真的非常多..前端也在迁移打包 跟着发 ...
- Loadrunner做性能测试的主要步骤
Loadrunner做性能测试的主要步骤: Loadrunner将性能测试过程分为计划测试.测试设计.创建VU脚本.创建测试场景.运行测试场景和分析结果6个步骤. 1) 计划测试:主要进行测试需求的收 ...
- 寻找图的强连通分量:tarjan算法简单理解
1.简介tarjan是一种使用深度优先遍历(DFS)来寻找有向图强连通分量的一种算法. 2.知识准备栈.有向图.强连通分量.DFS. 3.快速理解tarjan算法的运行机制提到DFS,能想到的是通过栈 ...
- JS的第一天,精彩内容
1.JS 介绍 js的全称是JavaScript,它是一门前台语言 Java是一门后台语言 ,它们两个之间毫无关系 JavaScript的作者是布兰登,艾奇 前台语言:运行在客户端 后台语言:与数据库 ...
- 高并发架构系列:Redis缓存和MySQL数据一致性方案详解
一.需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节.所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库. 这个业务场景, ...
- Windows和linux环境下按文件名和字符串搜索命令
Windows 1.遍历C盘下所有txt 命令:for /r c:\ %i in (*.txt) do @echo %i 注释:for 循环的意思 /r 按照路径搜索 c:\ 路径 %i in ( ...
- HDU 1025:Constructing Roads In JGShining's Kingdom(LIS+二分优化)
http://acm.hdu.edu.cn/showproblem.php?pid=1025 Constructing Roads In JGShining's Kingdom Problem Des ...