ftp建立虚拟用户实现文件上传和下载
环境 centos7
1.开启vsftpd服务
2.检查vsftpd服务是否开启
3.添加虚拟用户口令文件
vi etc/vsftpd/vuser.txt
4.生成虚拟用户口令认证文件
如果没有db_load口令认证命令,则需要安装
yum -y install db4-utils
如果有,那么直接把文档转变为认证文件
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
5.编辑vsftpd的PAM认证文件
vi /etc/pam.d/vsftpd
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
#注释掉其他行,加入此两行即可
#注释掉其他行,可以禁止本地用户登录,因为本地用户登录时的验证依然依赖这个文件
6.建立本地映射用户并设置宿主目录权限
useradd -d /home/vftproot -s /sbin/nologin vuser
#此用户不需要登录,只是映射用户 #用户名必须和下一步配置文件中一致
然后查看该目录的权限
发现权限是700,也就是说只有所有者才能rwx权限,其他人都没有权限,所以需要修改该目录下的权限,否则其他用户无法访问该目录
7.修改配置文件
vi /etc/vsftpd/vsftpd.conf
加上以下配置
#开启虚拟用户
guest_enable=YES
#FTP虚拟用户对应系统用户
guest_username=vuser
#PAM认证文件(默认存在)
pam_service_name=vsftpd
8.
调整虚拟用户权限
vi /etc/vsftpd/vsftpd.conf
#关闭匿名用户登陆,更加安全(不影响虚拟用户登陆
) anonymous_enable=NO
#给虚拟用户设定权限,允许所有虚拟用户上传
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
9.重启vsftpd服务并测试
service vsftpd restart
在测试过程中,如果遇到了530失败,则可能是pam验证文件路径错误,可以用find命令查找pam_userdb.so验证文件,然后从新修改vsftpd文件,改为正确的路径
而遇到远征主机关闭连接,则可能是防火墙的问题,需要运行一下命令
关闭防火墙 iptables -F
关闭SELinux setenforce 0(用sestatus查看如果发现selinux还是enable状态的话,则需要修改etc/selinux/config 中的enforcing 模式改为disabled, 然后重启)
如果遇到这种情况的话,是因为如果你开启了chroot_local_user=YES这个选项把用户限制在了主目录(用户不能跳出主目录),从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了。
果然,因为我们是该目录的所有者,拥有7权限,所以只要我们使用chown命令把所有者改成root就能登录了
因为我们在该目录下没有写权限,所以是只能下载文件而不能上传文件的
解决方法:在根目录下创建一个755所属自己的目录,在该目录下进行上传文件和下载
成功上传!
10.为每个虚拟用户建立自己的配置文件,单独定义权限
之前定义了两个虚拟用户,一个是test1,一个是test2,现在来单独配置一下test1的独立配置
(1)修改配置文件
vi /etc/vsftpd/vsftpd.conf
#指定保存虚拟用户配置文件的目录
user_config_dir=/etc/vsftpd/vusers_dir
(2)手工建立目录
mkdir /etc/vsftpd/vusers_dir
(3)为每个虚拟用户建立配置文件
vi /etc/vsftpd/vusers_dir/test1(虚拟用户名),加入一下权限
#允许此用户上传
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#给虚拟用户指定独立的上传目录
local_root=/tmp/test1
然后登陆测试
独立配置之后,使用test1登陆就会来到配置的目录下(/tmp/test1/)
因为和上面的那些操作几乎是一样的,这里就不演示了,如果不能登陆成功,记得检查根目录是否具有写权限,然后改掉写权限就可以了,最重要的一点就是配置不要错了,配置文件不能存在空格,否则也会报错!
ftp建立虚拟用户实现文件上传和下载的更多相关文章
- Java实现FTP文件上传与下载
实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有没有其他方式),分别为:1.通过JDK自带的API实现:2.通过Apache提供的API是实现. 第一种方式 package com.cl ...
- 利用windows系统ftp命令编写的BAT文件上传[转]
利用windows系统ftp命令编写的BAT文件上传[转] 利用windows系统ftp命令编写的BAT文件上传[转] 在开发中往往需要将本地的程序上传到服务器,而且用惯了linux命令的人来说.在w ...
- java代码实现ftp服务器的文件上传和下载
java代码实现文件上传到ftp服务器: 1:ftp服务器安装: 2:ftp服务器的配置: 启动成功: 2:客户端:代码实现文件的上传与下载: 1:依赖jar包: 2:sftpTools 工具类: ...
- 【ABAP系列】SAP ABAP 实现FTP的文件上传与下载
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 实现FTP的文 ...
- Android文件上传与下载
文件上传与下载 文件上传 -- 服务端 以Tomcat为服务器,Android客服端访问Servlet,经Servlet处理逻辑,最终将文件上传,这里就是简单模拟该功能,就将文件上传到本机的D:\\u ...
- Nginx集群之WCF大文件上传及下载(支持6G传输)
目录 1 大概思路... 1 2 Nginx集群之WCF大文件上传及下载... 1 3 BasicHttpBinding相关配置解析... 2 4 编写 ...
- win7下利用ftp实现华为路由器的配置文件上传和下载
win7下利用ftp实现华为路由器的配置文件上传和下载 1. Win7下ftp的安装和配置 (1)开始—>控制面板—>程序—>程序和功能—>打开或关闭Windows功能 (2 ...
- 用FileZilla服务器端和客户端实现本机与虚拟机之间文件上传和下载
1. FileZilla简介 2.准备工作3.安装 FileZilla Server和配置3.1.问题及解决方法3.2.添加目录3.3.测试FIP4.安装FileZilla Client5.连接服务器 ...
- javaWeb学习总结——文件上传、下载
目录 1.文件上传环境搭建 2.文件上传代码实现 3.关于下载 @ 嘿,熊dei,你不得不知道在Web开发中,文件上传和下载功能是非常常用的功能,关于文件上传,浏览器上传[文件以流的形式传输]--&g ...
随机推荐
- 【转】Diamond -- 分布式配置中心
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- Eclipse中文插件安装教程
先运行英文版Eclipse 点击Help选择Install New Software 直接点击Add按钮 Name输入: Babel Location输入: http://download.eclip ...
- linux (一)
一.文件目录 cd 目录进出 pwd 查看路径 ls:ll 查看目录 mkdir : mkdir -p app/test 创建目录 touch 创建文件 rm :rm -r 递归 -f 强制 mv ...
- 在Tomcat中配置MySQL数据源
打开context.xml文件,路劲为:apache-tomcat-7.0.61\conf,添加如下代码: <Resource auth="Container" driver ...
- 11G 新特性之 密码延迟认证
11G 新特性之 密码延迟认证 11G 新特性之 密码延迟认证 Table of Contents 1. 特性简述 2. 特性潜在引发问题 3. 关闭特性 1 特性简述 为了防止用户密码的暴力破解,从 ...
- while循环嵌套
<1>while嵌套的格式 while 条件1: 条件1满足时,做的事情1 条件1满足时,做的事情2 条件1满足时,做的事情3 ...(省略)... while 条件2: 条件2满足时,做 ...
- Promise.then链式调用
let a = new Promise((resolve,reject)=>{ resolve(1) }).then((r)=>{console.log(r)}).then(()=> ...
- MySQL MGR 5.7.22 on centos 6.3 单主/多主搭建测试
搭建Mysql Group Replication本次搭建采用3个实例,三个服务器,同一个网段,MGR的参数配置在配置文件中添加.注意通讯端口号的配置,它用于组成员之间的通讯使用请确定当前MySQL版 ...
- jmeter响应数据Unicode编码转换为汉字
2018-07-09 10:24:34 每次用jmeter做接口测试时,响应信息中文总是显示Unicode编码格式,每次都要在网上寻找这一段转换的代码,但是我发现在网上找这段代码有点麻烦,像我 ...
- 手机app打开的web,在打开chrome浏览器
手机app打开的web在,打开chrome浏览器 <a href='intent://#Intent;action=android.intent.action.VIEW;scheme=googl ...