CentOS 7搭建vsftp(虚拟用户方式登录)
说明:
vsftpd的版本:vsftpd-3.0.2-22.el7.x86_64
ftp 根目录 : /data/ftp
ftp 配置文件目录:/etc/vsftpd
ftp 虚拟用户权限配置文件目录:/etc/vsftpd/vuser_config
实现目标:
1)匿名用户可以登录,但是不能访问虚拟用户的宿主目录,只能访问共享目录
2)虚拟用户对自己的宿主目录有任何权限,且只能在自己宿主目录中操作
1.安装vsftpd,ftp和libdb-utils(需要安装db包,用来加密虚拟用户的账户信息,centos7默认安装好了)
# yum install vsftpd ftp -y
2.创建本地用户[用于映射虚拟用户]
#建立ftp用户目录
# mkdir -p /data/ftp
#创建用户
# useradd -d /data/ftp vuser -s /sbin/nologin
#更改权限和主组权限
# chmod 755 /data/ftp
# chown vuser.root /data/ftp
3.创建虚拟用户[用户和密码]文件
# vim /etc/vsftpd/vuser-list
abc [用户名]
123456 [密码]
bcd [用户名]
123123 [密码]
4.加密用户密码文件生成数据库文件
# cd /etc/vsftpd/
# db_load -T -t hash -f ./vuser-list ./vuser-list.db
# chmod 600 vuser-list.db
5.创建PAM认证文件
# vi /etc/pam.d/vuser.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser-list #注意64位系统写/lib64这个路径,32位系统要写成/lib,下同!
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser-list
6.修改配置文件
# vi /etc/vsftpd/vsftpd.conf
#允许匿名用户访问
anonymous_enable=yes
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
#修改ftp默认目录到/data/ftp下面
chroot_local_user=YES
local_root=/data/ftp
anon_root=/data/ftp
#pam认证文件
pam_service_name=vuser.vu
#虚拟用户权限配置目录
user_config_dir=/etc/vsftpd/vuser_config
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
one_process_model=NO
#开启虚拟用户
guest_enable=YES
guest_username=vuser
===================================
注意,如果vsftpd的版本是:vsftpd-2.2.2-24.el6.x86_64
那么vsftpd.conf的配置文件修改如下,其他操作一样,不然的话2.2.2版本启动时会遇到各种问题:
listen=YES
local_enable=YES
anon_umask=022
anonymous_enable=YES
pam_service_name=vuser.vu
userlist_enable=YES
chroot_local_user=YES
local_root=/data/ftp
anon_root=/data/ftp
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vuser_config
userlist_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
===================================
7.重启vsftpd服务
# service vsftpd restart
8.创建虚拟用户[权限]配置文件
# mkdir /etc/vsftpd/vuser_config
# cd /etc/vsftpd/vuser_config
# vi abc [有所有权限]
#设置登录后禁锢的目录
local_root=/data/ftp/abc
#开放写权限
write_enable=yes
#开放下载权限
anon_world_readable_only=no
#开放上传权限
anon_upload_enable=yes
#开放创建目录的权限
anon_mkdir_write_enable=yes
#开放删除和重命名的权限
anon_other_write_enable=yes
# vi bcd [只有上传下载的权限]
local_root=/data/ftp/bcd
anon_upload_enable=yes
anon_world_readable_only=no
9.更改虚拟用户目录权限
#如果不更改的话,匿名用户是可以访问到的
# mkdir /data/ftp/abc && chmod 700 /data/ftp/abc
# mkdir /data/ftp/bcd && chmod 700 /data/ftp/bcd
# chown -R vuser.root /data/ftp
10.测试访问。
11.添加用户(不需要重启vsftpd服务)
#添加新用户test,密码为abcd
# vi /etc/vsftpd/vuser-list
abc
123456
bcd
123456
test
abcd
#创建test用户对应的目录并授权
# mkdir /data/ftp/test && chown vuser:root /data/ftp/test
#重新生成加密的db文件
# cd /etc/vsftpd
# db_load -T -t hash -f ./vuser-list ./vuser-list.db
# 删除用户就是把添加用户的操作撤销,然后删除加密的db文件重新生成即可。
12.测试访问,此时添加的test用户的/data/ftp/test目录的权限是755,匿名用户可以登录。若要屏蔽,修改权限为700即可。
===============================================
错误处理:
错误1:226 Transfer done (but failed to open directory)
解决:selinux 和防火墙导致
错误2:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
解决:配置文件中加入 allow_writeable_chroot=YES 针对标准vsftpd(standonly)模式,然后重启ftp.
参考链接:http://blog.csdn.net/aerchi/article/details/78042443
CentOS 7搭建vsftp(虚拟用户方式登录)的更多相关文章
- vsftp虚拟用户方式访问
需求:外部人员需要对公司服务器上某个文件夹内容进行读写操作 文件目录信息:/opt/abc drwxr-xr-x 9 www www 4096 12月 4 13:02 abc #注 ...
- centos 7.2下搭建vsftp 虚拟用户
虚拟用户搭建vsftp 要求一: 只允许上传 下载 不能删除 不能更换名称 yum install pam* yum install db4* -y yum install vsftpd chkcon ...
- vsftp虚拟用户登录配置详解
一.安装:1.安装Vsftpd服务:# yum install vsftpd 2.安装DB4部件包:这里要特别安装一个db4的包,用来支持文件数据库.# yum install db4-utils 二 ...
- FTP原理和虚拟用户映射登录-2019.2.8
FTP主动模式和被动模式 FTP(File Transfer Protocol)是文件传输协议的简称.正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序 ...
- vsftp 虚拟用户高级设置(转载)
发布:xiaokk 来源:net [大 中 小] vsftp 虚拟用户高级设置 本文转自:http://www.jbxue.com/article/1724.html 1.安装所需软件包 ...
- ecs centos7.3 搭建vsftpd 虚拟用户
FTP介绍 FTP会话时包含了两个通道,一个叫控制通道,端口号21:一个叫数据通道,端口号20. 控制通道:控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的. ...
- vsftpd配置虚拟用户为登录用户02
1.安装vsftpd 安装依赖包: yum -y install pam pam-devel db4 de4-devel db4-uitls db4-tcl 新建vsftpd系统用户: #建立Vsft ...
- CentOS7 FTP服务搭建(虚拟用户访问FTP服务)
概述 最近在搞Oracle在Linux系统下集群,针对Linux系统,笔人也是一片空白.Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建.FT ...
- 基于腾讯云centos简单搭建VSFTP
基于腾讯云centos7.3搭建VSFTP 环境分析: 基于vsftp服务在于云主机上,所以推荐使用FTP的PASV模式: FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动 ...
随机推荐
- 微信小程序把玩(三十九)navigation API
原文:微信小程序把玩(三十九)navigation API 演示效果也看到了小程序也就提供这几个处理导航控制.值得注意的是只能同时导航五个页面 主要属性: 导航条一些方法 wx.setNavigati ...
- mysql多对一、多对多查询实践
最近做的功能涉及这方面,算是练了一下. 首先多对一部分较简单.多的那一方表,多设置一个字段是少的那一方的id(主键). 具体查询时候关联查询即可. 可设置外键进行级联操作. 具体以后做到这个功能再更新 ...
- java的clone()、浅拷贝与深拷贝
clone()方法是Object的native方法.protected native Object clone() throws CloneNotSupportedException; 声明为pro ...
- SOA 相关开发调试软件
开发工具 IntelliJ IDEA:https://www.jetbrains.com/idea/ SOA调试 soapui:http://www.soapui.org/ wcfstorm:http ...
- delphi xe5 中TMemo控件的应用——for android
TMemo中的两个方法: TMemo.Lines.Add(stringxxx);意思是向TMemo中增加字符串stringxxx: TMemo.Lines.Text :=stringxxx,意思是清空 ...
- 核心思想:自由职业的所谓自由,必须先职业,然后才能自由(还要对抗自己的惰性,提前寻找客户)good
除了前面提到的专业性,还要足够自律,能够管理好自己的时间和精力. 具体来说,需要目标管理和时间(精力)管理. 所谓目标管理,对于自由职业者来讲,就是要识别出自己最擅长的方向,确立自己可以提供的最有价值 ...
- ring3层一种占用文件的方法(DuplicateHandle以后,把占用文件的句柄丢给系统进程,导致被占用)
前段时间,一个测试工程师问我关于怎样长时间的占用一个文件,而使别的程序无法再访问这个文件,想起以前很多病毒木马经常劫持hosts文件不放,除非你找到占用文件的程序,并强行结束掉,否则怎么也访问不了ho ...
- 为QNetworkAccessManager添加超时提醒(自己记录一段时间里的下载字节数,用定时器去定期检测,从而判断是否超时)
在做更新,在测试异常的时候,在下载过程中,发现如果直接系统禁用了网络,会报错误,可以捕获.但是如果是第三方软件限制程序联网,问题来了. 程序会一直在那里等待,没有异常,也不发送QNetworkAcce ...
- UbuntuServer添加软件源列表
要使用Ubuntu前,我们一般都要先做好工具!特别是对于安装这一块~~~~ 1.配置前,先做个配置文件的备份: $sudo cp /etc/apt/sources.list /etc/apt/sour ...
- SQL SERVER 之快照复制,事务复制,合并复制
一.环境要求及说明 1.快照复制和事务复制是单向的(2005及以后的版本中加入了订阅端可更新的事务复制). 2.合并复制是双向的. 3.快照复制对表结构没有要求. 4.事务复制要求表有主键. 5.合并 ...