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的安装 目录介绍 配置参数解释 锁定用户目录 其他用户不能登录 -------------------------------------------------------- ...
随机推荐
- vc++的学习目的
vc++支持多种编程方式,从结构化的编程,面向对象编程,泛型编程,com组件编程. 我想学习vc++的原因是它更接近底层.非常的高效,希望之后用它写出非常简洁高效的代码.
- 使用LinkedList模拟一个堆栈或者队列数据结构。
堆栈:先进后出 First in last out filo 队列:先进先出 First in last out filo使用LinkedList的方法,addFirst addLast getFir ...
- vuejs切换导航条高亮路由高亮做法
我的GitHub前端经验总结,喜欢的话请点star✨✨Thanks.:https://github.com/liangfengbo/frontend-develop vuejs导航条高亮我的做法: 用 ...
- Python自学day-12
一.Mysql概述 RDBMS:关系型数据库管理系统.Mysql是一种RDBMS. Oracle:收费 Mysql:Oracle旗下免费 Sqlserver:微软 DB2:IBM Postgresql ...
- 【JVM】02垃圾回收机制
垃圾回收 垃圾回收策略https://blog.csdn.net/u010425776/article/details/51189318 程序计数器.Java虚拟机栈.本地方法栈都是线程私有的,也就是 ...
- vagramt中同步文件,webpack不热加载
这是一篇参考文章:https://webpack.js.org/guides/development-vagrant/ 在使用vue-cli+webpack构建的项目中,如何使用vagrant文件同步 ...
- redis 安装和单机多节点集群
环境: centOs系统 一.安装redis: 1.下载安装(先装c编译器yum -y install gcc) $ wget http://download.redis.io/releases/re ...
- code forces 1173 C. Nauuo and Cards
本文链接:https://www.cnblogs.com/blowhail/p/10990833.html Nauuo and Cards 原题链接:http://codeforces.com/con ...
- 风险:隐蔽权限修改导致rgw服务中断
上午正在开会,突然收到rgw服务异常的告警(503 Service Unavailable),立马停下来处理告警,避免影响到用户~ 我们的rgw frontend用的是apache,之前也遇到过5 ...
- Codeforces 730A:Toda 2(multiset模拟)
http://codeforces.com/problemset/problem/730/A 题意:有n个人打天梯,想让这n个人的分数相同,每场比赛必须有2-5个人参赛,参赛的人会降低一分,问一个合理 ...