搭建FTP服务器,设置用户权限775 ,并只许上传、禁止下载和删除

1、安装vsftpd软件包,命令如下:

sudo yum -y install vsftpd

2、查看vsftpd的运行状态,命令如下:

sudo netstat -nltp | grep 21

一般情况下,vsftpd安装完成后会自动启动,如下图所示通过 netstat 命令可以看到系统已经监听了 21 端口

特殊情况下,假如vsftpd没有自启动,可以手动开启:

sudo systemctl start vsftpd.service

3、配置ftp登录用户及权限

在这一步中,网上基本所有的帖子都用useradd,但是使用useradd时,如果后面不添加任何参数选项,例如:#sudo useradd test创建出来的用户将是默认“三无”用户:无Home Directory、无密码,无系统Shell,还需要自己配置,比较麻烦。

而使用adduser,创建用户的过程更像是一种人机对话,系统会提示你输入各种信息,然后会根据这些信息帮你创建新用户,所以,我用adduser来创建新的ftp登录用户。

 sudo adduser ftp

创建用户的过程如下图所示,创建完了后home下会自动出现一个对应的文件夹。

4、删除掉 pam.d 中 vsftpd,因为该配置文件会导致使用用户名登录 ftp 失败

sudo rm /etc/pam.d/vsftpd

5、限制用户 ftp只能通过 FTP 访问服务器,而不能直接登录服务器

sudo usermod -s /sbin/nologin ftp

注:此处一定要谨慎操作,如果新建的ftp用户只用来上传数据,可以这么操作。如果该用户还要ssh来连接,就不能这么操作。

6、配置vsftpd,这一步很关键,直接决定

sudo chmod a+w /etc/vsftpd.conf
sudo vim /etc/vsftpd.conf

主要添加以下几项权限:

# 限制用户对主目录以外目录访问
chroot_local_user=YES
​#是否允许匿名访问,NO为不允许
anonymous_enable=NO
​​​​​​
#是否允许本地用户访问,就是linux本机中存在的用户,YES允
local_enable=YES
#是否开启写模式,YES为开启
write_enable=YES#不允许下载
download_enable=NO
​​​​​​​
#新建文件权限,一般设置为022,那么新建后的文件的权限就是777-002=775
local_umask=002
#是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让userlist作为一个白名单,所以无需使用黑名单功能userlist_deny=NO​​​​​​​#是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp(可以理解为userlist是一个白名单),NO的话,白名单失效,和下面一个参数配合使用userlist_enable=YES​​​​​​​#指定哪个文件作为userlist文件,我们稍后编辑这个文件userlist_file=/etc/vsftpd.user_list​​​​​​​# 不配置可能导致莫名的530问题seccomp_sandbox=NO​​​​​​​#修改用户上传文件的所属主chown_uploads=YESchown_username=ftp​​​​​​​#是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,当然要限制chroot_local_user=YES​​​​​​​#是否启动限制用户的名单list为允许模式,上面的YES限制了所有用户,可以用这个名单作为白名单,作为例外允许访问ftp根目录以外chroot_list_enable=YES​​​​​​​#设置哪个文件是list文件,里面的用户将不受限制的去访问ftp根目录以外的目录chroot_list_file=/etc/vsftpd.chroot_list​​​​​​​#是否开启写模式,开启后可以进行创建文件夹等写入操作,添加后可以解决“500 OOPS: vsftpd: refusing to run with writable root inside chroot ”的问题allow_writeable_chroot=YES​​​​​​​# 使用utf8编码utf8_filesystem=YES

7、新建文件 /etc/vsftpd.user_list,用于存放允许访问 ftp 的用户

修改 /etc/vsftpd.user_list ,加入刚刚创建的用户,一行一个用户

sudo touch /etc/vsftpd.user_listsudo chmod a+w /etc/vsftpd.user_list

8、设置访问权限

防止用户下载可以通过以下两个途径:

(1)在vsftpd.conf中后面添加download_enable=NO(已经添加)

(2)修改local_umask=477,默认是=700,自动把上传的文件修改权限为“----r---w-”

9、禁止ftp用户具有删除文件的权利

(1)创建文件vsftpd_user_conf

mkdir -p /etc/vsftpd/vsftpd_user_conf

(2)编辑vsftpd_user_conf

vim /etc/vsftpd/vsftpd_user_conf/ftp

注意:后面的 ftp对应自己要限制权限的账户,此处我限制的是ftp 账户的权限

在里面写入下面的一句话,这句话的意思是 禁止使用 删除命令。

cmds_denied=DELE

10、重新打开配置文件

vim /etc/vsftpd/vsftpd.conf

然后添加

user_config_dir=/etc/vsftpd/vsftpd_user_conf

11 重启vsftpd 服务:

sudo systemctl restart vsftpd.service

至此配置vsftpd,并且设定用户的权限为只可上传,禁止下载和删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mongodb replicaset shard 集群性能测试

2019独角兽企业重金招聘Python工程师标准>>> mongodb支持自动分片的功能,并且可以让数据尽可能地均匀分布在各个节点上,本身支持横向扩展。 1,环境搭建 此次性能测试对象为mongodb的replicaset自动分片功能,集群拓扑…

打油诗

嫁人不嫁造船郎,一年四季总在忙,春夏秋东不见面,回家一包臭衣裳!我是一个造船郎,背井离乡在外闯,白天累得腿发软,晚上仍为资料忙;思乡痛苦心里藏,四海漂泊习为常&#xf…

去马赛克神器 JavPlayer TG Modle 最新版

本帖最后由 cyberim 于 2019-8-28 22:13 编辑 -----知识点----- Mosaic的原理就是将1个像素的颜色填满一个小区域,所以在平面图片上是无法还原的--简单说就是单一图片的Mosaic不可逆! 但是…如果是Mosaic影片的话,一个Mosaic方格的中心点就会是一个原始影…

jQuery日期和时间插件(jquery-ui-timepicker-addon.js)中文破解版使用

简介 jQuery UI Datepicker日期选择插件很好用了,只不过只能精确到日,不能选择时间(小时分钟秒)很遗憾,而jquery-ui-timepicker-addon.js正是基于jQuery UI Datepicker的一款可选时间的插件。 官网地址:h…

Linux服务之httpd基本配置详解

当今主流的开源Web服务器软件有httpd(Apache),lighttpd,nginx,thttpd等,而httpd是迄今为止使用量多的web服务器,据统计目前httpd的全球占有量是47%左右,虽然有所下降但是使用两仍然是最多的,统计web服务器使用率的网站是&#xff…

android新建工程横屏,华为MatePad Pro构建的安卓平板横屏生态有何不同?来看看

在过去很多年中,Android 平板或者说 Android大屏设备一直受限于 Android生态的限制,无法发挥出本应具备的大屏使用体验,也正是因为这个原因,Android平板电脑一直被当做娱乐设备。在去年11月25日,华为正式发布了主打生产…

Flutter笔记:Web支持原理与实践

Flutter笔记 Web支持原理与实践 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com CSDN:https://blog.csdn.net/qq_28550263/article/details/135037756 华为开发者社区…

设置MAC 下 Vim 语法高亮显示

一:终端进入 cd /usr/share/vim/ 二: sudo vim vimrc 三:添加 syntax enablesyntax on 四:保存退出 转载于:https://www.cnblogs.com/cocoajin/p/3284604.html

外部服务发现之 ingress(一) traefik 的安装使用

Ingress其实就是从 kuberenets 集群外部访问集群的一个入口,将外部的请求转发到集群内不同的 Service 上,其实就相当于 nginx、haproxy 等负载均衡代理服务器,有的同学可能觉得我们直接使用 nginx 就实现了,但是只使用 nginx 这种…

ASP.NET MVC 3发布报错(ASP.NET MVC 3在没有安装环境的服务器上运行)的解决方案

前言 ASP.NET MVC 3在没有安装MVC3的环境的服务器上运行,就会报错,缺少引用,本文就为mvc3发布报错的解决方案。 解决方案 思路:提供ASP.NET MVC 3运行所需的的dll即可解决报错问题。 1、项目添加ASP.NET MVC 3的引用&#xff…

Python破解滑块验证码算法,完美避开人机识别

| 完美是不可能的,加个震惊!Python破解BiliBili滑块验证码,完美避开人机识别,可以有 准备工作 B站登录页 https://passport.bilibili.com/loginpython3pip install selenium (webdriver框架)pip install P…

php 分页类

2019独角兽企业重金招聘Python工程师标准>>> 分页公式&#xff1a;页数&#xff08;总记录数-1&#xff09;/每页显示记录数1&#xff1b; 借助这个公式&#xff0c;实现以下分页类&#xff1b; <?php class Fpage{ private $total; //数据表中总记录数 …

Android木马分析实验,Android木马简介与分析

本文介绍基于Android的手机恶意软件&#xff0c;是一个基础性的介绍&#xff0c;给新入门的人提供一个分析和工具指引。要分析的木马是一个2013年的syssecApp.apk&#xff0c;这个木马的分析能对Android恶意软件有个大概了解。基础&#xff1a;1 –Android应用基础Android是goo…

Visual Studio 2012资源管理器里单击打开改为双击打开文件

Visual Studio 2012资源管理器里&#xff0c;单击打开文件改为双击打开文件&#xff0c;如图&#xff1a;

android怎么升级版本5.0,一加手机怎么升级安卓5.0系统

谷歌今天正式发布了最新的安卓5.0正式版&#xff0c;作为一次非常大的系统升级&#xff0c;安卓5.0带来了非常多明显的升级&#xff0c;体验上相比安卓4.4要精进不少。在众多手机纷纷向Android 5.0发起冲击之时&#xff0c;一加手机官方论坛也放出了首个Android 5.0固件&#x…

Android 自动化测试——Monkey测试

2019独角兽企业重金招聘Python工程师标准>>> 1、Monkey测试简介 Monkey主要应用在压力和可靠性测试上&#xff0c;运行该命令可以随机地向目标程序发送各种模拟键盘事件流&#xff0c;并且可以自己定义发送的次数&#xff0c;以此观察被测应用程序的稳定性和可靠性…

一个网卡绑定多个IP

2019独角兽企业重金招聘Python工程师标准>>> 今天在做公司行业网站时&#xff0c;遇到这样一个问题&#xff0c;由于做了多个行业网站&#xff0c;每个行业网站都要一个会员模板网站&#xff0c;这种网站需要域名泛指向功能&#xff0c;而一个IP地址&#xff0c;80端…

android高仿天天动听,Android仿天天动听歌曲自动滚动view

最近项目中要做一个类似天天动听歌曲自动滚动行数的效果。首先自己想了下Android要滚动的那就是scroller类或者scrollto、scrollby结合了&#xff0c;或者view.layout()方法&#xff0c;或者使用动画。但是要循环滚动&#xff0c;貌似这些到最后一行滚动到第一行都有往回滚的效…

详解UML中的聚合,关联,泛化等关系

1. Overview UML设计类中&#xff0c;类的关系分为Generalization(泛化)&#xff0c;Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(组合关系)五种! 2. Generalization(泛化) Generalization(泛化)表现为继承或实现关系(is a)。具体形式为…

CentOS 8 安装 Docker  报错  requires containerd.io >= 1.4.1, but none of the providers can be installed

CentOS 8.1安装 Docker 官方参考地址&#xff1a;https://docs.docker.com/install/linux/docker-ce/centos/ 里面包含包下载地址&#xff1a;https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.4.3-3.1.el8.x86_64.rpm 一。确认CentOS 版…