安装 VSFTPD,(建议使用FileZill测试,报错能看到原因)

如果使用window文件管理连接,要注意下图的设置

使用 apt-get 安装 vsftpd

sudo apt-get install vsftpd -y

安装完成后 VSFTPD 会自动启动,通过 netstat 命令可以看到系统已经监听了 21 端口

sudo netstat -nltp | grep 21

如果没有启动,可以手动开启 VSFTPD 服务:

sudo systemctl start vsftpd.service

配置用户访问目录,新建用户主目录

sudo mkdir /home/she

执行完后,在这里 /home/she就能看到新建的文件夹 she了。

创建登录欢迎文件

sudo touch /home/she/welcome.txt

新建用户 she 并设置密码,创建一个用户 she

sudo useradd -d /home/she -s /bin/bash she

为用户 she 设置密码

sudo passwd she

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

sudo rm /etc/pam.d/vsftpd

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

sudo usermod -s /sbin/nologin she

修改 vsftpd 配置

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

修改 /etc/vsftpd.conf 文件中的配置(直接将如下配置添加到配置文件最下方):

# 限制用户对主目录以外目录访问
chroot_local_user=YES # 指定一个 userlist 存放允许访问 ftp 的用户列表
userlist_deny=NO
userlist_enable=YES # 记录允许访问 ftp 用户列表
userlist_file=/etc/vsftpd.user_list # 不配置可能导致莫名的530问题
seccomp_sandbox=NO # 允许文件上传
write_enable=YES
#不允许下载
download_enable=NO #修改用户上传文件的所属主
chown_uploads=YES
chown_username=root # 使用utf8编码
utf8_filesystem=YES #限制用户权限的目录
user_config_dir=/etc/vsftpd/vsftpd_user_conf

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

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

想了解没有配置的意思,请参考前面连接

https://security.appspot.com/vsftpd/vsftpd_conf.html

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

设置访问权限

由于我们she用户登录ftp需要打开目录和上传文件,

读权限:对文件具有读取文件内容的权限、对文件目录具有浏览目录信息的权限

写权限:对文件具有修改文件内容的权限、对文件目录具有移动删除目录信息的权限

执行权限:对文件具有执行文件的权限、对文件目录具有进入目录的权限

因此,防止用户下载可以通过以下两个途径

  1. 在vsftpd.conf中后面添加download_enable=NO
  2. 修改local_umask=477,默认是=700,他会自动把上传的文件修改权限为:
----r---w- 1 she  she   616448 Mar  8 15:04 第1次实验_201*****419_麦*文.doc
  1. 这样she就没有权限了,

禁止she用户具有删除文件的权利

首先执行

mkdir -p /etc/vsftpd/vsftpd_user_conf

然后执行

vim /etc/vsftpd/vsftpd_user_conf/she

(注意后面的 she)对应自己要限制权限的账户,我限制的 是she 账户对应的命令就变成

vim /etc/vsftpd/vsftpd_user_conf/she

在里面 写入

cmds_denied=DELE

这句话的意思是 禁止使用 删除命令。更多命令

https://blog.51cto.com/dreamway/1045610

重新打开配置文件

vim /etc/vsftpd/vsftpd.conf

在尾部 写一句

user_config_dir=/etc/vsftpd/vsftpd_user_conf

重启vsftpd 服务:

sudo systemctl restart vsftpd.service

ubuntu 16 搭建只能上传不可下载删除ftp服务的更多相关文章

  1. vsftpd匿名用户只能上传不能下载

    目的 搭建一台FTP服务器,供学生上传作业使用. 要求 1.学生可以直接访问FTP服务器,无需登录: 2.只能上传文件,不能创建文件夹.重命名.删除等: 3.不能下载文件(防抄袭): 4.不能在线查看 ...

  2. 简单的使用git克隆上传创建下载删除

    首先我们下载个git 官网:https://git-scm.com/ 我这里下的是64-bit windows setup 下载完成后安装: 一直下一步就好 安装完成后进行打开! 现在我们需要去官网注 ...

  3. vsftp实现只能上传不能下载、删除权限配置

    vsftpd可以对每个用户特别限制.只要给那个用户建立一个设置文件,然后在文件里设置 在vsftpd.conf里加user_config_dir=/etc/vsftpd/vsftpd_user_con ...

  4. 通过JAVA对FTP服务器连接,上传,下载,读取,移动文件等

    记录一次对FTP服务器文件内容 通过Java程序对FTP服务器文件处理:连接,上传,下载,读取,移动文件等. 需求描述:今天接到一个任务,在Java项目中,读取FTP服务器上的一些文件,进行一些业务操 ...

  5. Java 实现ftp 文件上传、下载和删除

    本文利用apache ftp工具实现文件的上传下载和删除.具体如下: 1.下载相应的jar包 commons-net-1.4.1.jar 2.实现代码如下: public class FtpUtils ...

  6. [Android中级]使用Commons-net-ftp来实现FTP上传、下载的功能

    本文属于学习分享,如有雷同纯属巧合 利用业余时间.学习一些实用的东西,假设手又有点贱的话.最好还是自己也跟着敲起来. 在android上能够通过自带的ftp组件来完毕各种功能.这次是由于项目中看到用了 ...

  7. FTP服务器搭建以及上传下载的学习

    首先需要搭建FTP服务步骤如下: 1.在win7上先开启ftp服务:这里点击确定后,可能会要等一会儿,完成后有时系统会提示重启 2.打开   计算机-->管理-->   在这里我们可以看见 ...

  8. [CentOs7]搭建ftp服务器(3)——上传,下载,删除,重命名,新建文件夹

    摘要 上篇文章介绍了如何为ftp添加虚拟用户,本篇将继续实践如何上传,下载文件. 上传 使用xftp客户端上传文件,如图所示 此时上传状态报错,查看详情 从错误看出是应为无法创建文件造成的.那么我们就 ...

  9. nexus搭建maven私服及私服jar包上传和下载

    nexus搭建maven私服及私服jar包上传和下载 标签: nexus管理maven库snapshot 2017-06-28 13:02 844人阅读 评论(0) 收藏 举报 分类: Maven(1 ...

随机推荐

  1. pipenv安装报错ReadTimeoutError

    原因:pip下载源默认设置为国外 解决:将pip下载源切换为国内地址 操作: 在C:\Users\Administrator\下新建pip文件夹,在创建pip.ini文件,拷贝下面代码进去,保存 切换 ...

  2. C#上传下载文件

    方法一.通过Ajax方式上传文件(input file),使用FormData进行Ajax请求 <div  > <input type="file" name=& ...

  3. python中的数据类型(二)

    一.列表(list) 列表是可变的,有序的(只要能索引的都是有序的) 列表的基本操作: 1.增 1.append   追加       例:lst.append(8)        print (ls ...

  4. python协程初步---一个生成器的实现

    和列表那种一下占据长度为n的内存空间不同的是,生成器在调用的过程中逐步占据内存空间,因此有着很大的优势 一个斐波纳契数列的例子 def myfibbo(num): a,b=, count= while ...

  5. 17、生命周期-BeanPostProcessor在Spring底层的使用

    17.生命周期-BeanPostProcessor在Spring底层的使用 bean赋值.注入其他组件.@Autowired注解.生命周期注解.@Async --都是 BeanPostProcesso ...

  6. npm install、npm install --save与npm install --save-dev (转)

    仅供学习参考,侵权删 以npm安装msbuild为例: npm install msbuild: 会把msbuild包安装到node_modules目录中 不会修改package.json 之后运行n ...

  7. Vue 中的 ref $refs

    ref 被用来给DOM元素或子组件注册引用信息.引用信息会根据父组件的 $refs 对象进行注册.如果在普通的DOM元素上使用,引用信息就是元素; 如果用在子组件上,引用信息就是组件实例 注意:只要想 ...

  8. 五十四.自定义镜像及仓库、持久化存储 、 Docker网络架构

    1. 制作自定义镜像(base基础镜像,搭建共性环境) 基于centos镜像使用commit创建新的镜像文件 基于centos镜像使用Dockerfile文件创建一个新的镜像文件   1.1 使用镜像 ...

  9. APIO2009 抢掠计划 Tarjan DAG-DP

    APIO2009 抢掠计划 Tarjan spfa/DAG-DP 题面 一道\(Tarjan\)缩点水题.因为可以反复经过节点,所以把一个联通快中的所有路口看做一个整体,缩点后直接跑\(spfa\)或 ...

  10. 利用前端三大件(html+css+js)开发一个简单的“todolist”项目

    一.介绍 todolist,即待办事项.在windows android ios上参考微软家出的那个To-Do应用,大概就是那样的.我这个更简单,功能只有“待办” “已完成”两项,并且是在浏览器打开的 ...