ubuntu 16 搭建只能上传不可下载删除ftp服务
安装 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需要打开目录和上传文件,
读权限:对文件具有读取文件内容的权限、对文件目录具有浏览目录信息的权限
写权限:对文件具有修改文件内容的权限、对文件目录具有移动删除目录信息的权限
执行权限:对文件具有执行文件的权限、对文件目录具有进入目录的权限
因此,防止用户下载可以通过以下两个途径
- 在vsftpd.conf中后面添加download_enable=NO
- 修改local_umask=477,默认是=700,他会自动把上传的文件修改权限为:
----r---w- 1 she she 616448 Mar 8 15:04 第1次实验_201*****419_麦*文.doc
- 这样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服务的更多相关文章
- vsftpd匿名用户只能上传不能下载
目的 搭建一台FTP服务器,供学生上传作业使用. 要求 1.学生可以直接访问FTP服务器,无需登录: 2.只能上传文件,不能创建文件夹.重命名.删除等: 3.不能下载文件(防抄袭): 4.不能在线查看 ...
- 简单的使用git克隆上传创建下载删除
首先我们下载个git 官网:https://git-scm.com/ 我这里下的是64-bit windows setup 下载完成后安装: 一直下一步就好 安装完成后进行打开! 现在我们需要去官网注 ...
- vsftp实现只能上传不能下载、删除权限配置
vsftpd可以对每个用户特别限制.只要给那个用户建立一个设置文件,然后在文件里设置 在vsftpd.conf里加user_config_dir=/etc/vsftpd/vsftpd_user_con ...
- 通过JAVA对FTP服务器连接,上传,下载,读取,移动文件等
记录一次对FTP服务器文件内容 通过Java程序对FTP服务器文件处理:连接,上传,下载,读取,移动文件等. 需求描述:今天接到一个任务,在Java项目中,读取FTP服务器上的一些文件,进行一些业务操 ...
- Java 实现ftp 文件上传、下载和删除
本文利用apache ftp工具实现文件的上传下载和删除.具体如下: 1.下载相应的jar包 commons-net-1.4.1.jar 2.实现代码如下: public class FtpUtils ...
- [Android中级]使用Commons-net-ftp来实现FTP上传、下载的功能
本文属于学习分享,如有雷同纯属巧合 利用业余时间.学习一些实用的东西,假设手又有点贱的话.最好还是自己也跟着敲起来. 在android上能够通过自带的ftp组件来完毕各种功能.这次是由于项目中看到用了 ...
- FTP服务器搭建以及上传下载的学习
首先需要搭建FTP服务步骤如下: 1.在win7上先开启ftp服务:这里点击确定后,可能会要等一会儿,完成后有时系统会提示重启 2.打开 计算机-->管理--> 在这里我们可以看见 ...
- [CentOs7]搭建ftp服务器(3)——上传,下载,删除,重命名,新建文件夹
摘要 上篇文章介绍了如何为ftp添加虚拟用户,本篇将继续实践如何上传,下载文件. 上传 使用xftp客户端上传文件,如图所示 此时上传状态报错,查看详情 从错误看出是应为无法创建文件造成的.那么我们就 ...
- nexus搭建maven私服及私服jar包上传和下载
nexus搭建maven私服及私服jar包上传和下载 标签: nexus管理maven库snapshot 2017-06-28 13:02 844人阅读 评论(0) 收藏 举报 分类: Maven(1 ...
随机推荐
- java线程基础巩固---多线程死锁分析,案例介绍
之前已经学习了关于同步锁的知识,但是在实际编写多线程程序时可能会存在死锁的情况,所以这次来模拟一下死锁,并且学会用一个命令来确认是否程序已经出现死锁了,下面开始: 首先新建两个类: 此时当然得到Oth ...
- java中的io流总结(一)
知识点:基于抽象基类字节流(InputStream和OutputStream).字符流(Reader和Writer)的特性,处理纯文本文件,优先考虑使用字符流BufferedReader/Buffer ...
- 单元测试框架之unittest(六)
一.摘要 本片博文将介绍unittest框架的一些轻便有效的特性,在我们的测试中经常可以用到 如果有一些测试方法不想执行,如果有些测试方法在某些条件下不执行 该当如何? 如果有些方法未在unittes ...
- python 传参
python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是“传对象引用”的方式.这种方式相当于传值和传引用的一种综合.如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能 ...
- Mongo Backup
#!/bin/sh # This script is run on every mongo node. However, it checks to see if this node is the pr ...
- BZOJ 3052/Luogu P4074 [wc2013]糖果公园 (树上带修莫队)
题面 中文题面,难得解释了 BZOJ传送门 Luogu传送门 分析 树上带修莫队板子题... 开始没给分块大小赋初值T了好一会... CODE #include <bits/stdc++.h&g ...
- 011_Linux驱动之_s3c2410_gpio_getpin
1. 功能:获取引脚状态 2. 函数原型: unsigned int s3c2410_gpio_getpin(unsigned int pin) { void __iomem *base = S3C2 ...
- Vue中用props给data赋初始值遇到的问题解决
Vue中用props给data赋初始值遇到的问题解决 更新时间:2018年11月27日 10:09:14 作者:yuyongyu 我要评论 这篇文章主要介绍了Vue中用props给dat ...
- sync、fsync和fdatasync
转自 http://blog.csdn.net/todd911/article/details/11701847 传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘 I/O都通过缓 ...
- 十一、FHS基础原理
文件系统: http://note.youdao.com/noteshare?id=298f02714da5b9483429a40dda667f35&sub=6120396419BA477 ...