linux搭建ftp虚拟用户服务器

linux搭建ftp虚拟用户服务器

1 安装服务

#1、安装ftp服务
[root@localhost ~]#yum install -y vsftpd ftp
#2、关闭防火墙
[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@localhost ~]#setenforce 0

2、虚拟用户相关配置

#1 新建一个ftp的宿主用户(真实用户)
[root@localhost ~]#useradd -g root -M -d /var/www/html -s /sbin/nologin ftpuser
[root@localhost ~]#passwd ftpuser
#此处的ftpuser就是你的账户名
# 2 设置 该用户的目录
[root@localhost ~]#chown -R ftpuser.root /var/www/html
#把 /var/www/html 的所有权给ftpuser.root
#这里的 /var/www/html 就是ftp的根目录,没有的话自行创建,也可以换成其他目录#3 修改/etc/pam.d/vsftpd (只保留下面两行)
[root@localhost ~]#vim /etc/pam.d/vsftpd
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
# 4 创建一个用于保存明文用户名和密码的文件 vuser_passwd.txt
[root@localhost ~]#vim /etc/vsftpd/vuser_passwd.txt
test
123456
# 5 然后通过以下命令生成db文件:
[root@localhost ~]#db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db[root@localhost ~]#mkdir vuser_conf
#6 设置虚拟用户的目录
[root@localhost ~]#vim vuser_conf/test
local_root=/var/www/html
#设置虚拟用户是否可以写入
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
#允许虚拟用户的上传功能
anon_upload_enable=YES
#设置虚拟用户是否可以创建文件夹
anon_mkdir_write_enable=YES
#设置虚拟用户是否可以执行其他的写入操作,比如删除、重命名、覆盖操作。
anon_other_write_enable=YES
#最多允许同一账号在10个不同的IP登录
max_per_ip=10
#最大下载速度(字节/秒)
local_max_rate=2500000
#session超时时间
#idle_session_timeout=300
#连接超时时间
#data_connection_timeout=90
#最多连接数
#max_clients=10
#7 修改ftp的配置文件
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
#修改一下几处
#不允许匿名访问
anonymous_enable=NO
#本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问
local_enable=YES
#可以进行写操作
write_enable=YES
#禁止匿名用户上传
anon_upload_enable=NO
#禁止匿名用户建立目录
anon_mkdir_write_enable=NO
#支持ASCII模式的上传和下载功能
ascii_upload_enable=YES
ascii_download_enable=YES
#限制用户只能在FTP主目录
#若没有chroot_list文件,自行创建,每一行为一个用户名
chroot_local_user=NO
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
#开启ip4监听
listen=YES
#关闭ip6监听
listen_ipv6=NO
#PAM服务下Vsftpd的验证配置文件名
pam_service_name=vsftpd
#指定vsftpd服务的运行帐户,不指定时使用ftp
#这里的ftpuser就是刚才useradd时创建的Linux系统用户
nopriv_user=ftpuser 
# 设定启用虚拟用户功能
guest_enable=YES
# 指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
guest_username=ftpuser
# 虚拟用户配置文件存放的路径
user_config_dir=/etc/vsftpd/vuser_conf
# 如果启用了限定用户在其主目录下需要添加这个配置
allow_writeable_chroot=YES
# NO时,虚拟用户和匿名用户有相同的权限,默认是NO
virtual_use_local_privs=YES
#开启pasv被动模式
pasv_enable=YES

3、增加新的虚拟用户

# 1 增加nanjingftp用户
[root@localhost ~]#vim /etc/vsftpd/vuser_passwd.txt
test
123456
nanjingftp
11111
#2 然后通过以下命令生成db文件:
[root@localhost ~]#db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
[root@localhost ~]#mkdir vuser_conf
#3 设置虚拟用户的目录
[root@localhost ~]#vim vuser_conf/test
local_root=/var/www/html/nanjing
#设置虚拟用户是否可以写入
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
#允许虚拟用户的上传功能
anon_upload_enable=YES
#设置虚拟用户是否可以创建文件夹
anon_mkdir_write_enable=YES
#设置虚拟用户是否可以执行其他的写入操作,比如删除、重命名、覆盖操作。
anon_other_write_enable=YES
#最多允许同一账号在10个不同的IP登录
max_per_ip=10
#最大下载速度(字节/秒)
local_max_rate=2500000
#session超时时间
#idle_session_timeout=300
#连接超时时间
#data_connection_timeout=90
#最多连接数
#max_clients=10
#4、重启ftp服务
[root@localhost ~]#systemctl restart vsftpd

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

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

相关文章

给你的博客添加个看电影的频道

PPTV新推出一个Silverlight版PPTV在线剧场,里面电影电视剧和PPTV 软件端同步,只需安装Silverlight软件,即可在线观看。PPTV剧场版网址 为COOL.PPTV.COM ,使用iframe代码,嵌入到页面中,给博客网站增加 一个在…

docker inspect命令详解

docker inspect命令详解 1、作用 获取容器/镜像的元数据(JSON格式) 2、语法格式 docker inspect [OPTIONS] NAME|ID [NAME|ID...] -f 指定返回值的模板文件 -s 如果类型为容器,则显示文件总大小 --type 返回指定类型的JSON3、实际例子 #获取容器 IP docker ins…

redhat linux配置RSH遇见的问题

在配置informix HDR时,由于需要配置2台机器的可信任关系,结果就在这过程中停顿了好一阵,现在将问题记录下来,供以后参考1.检查是否安装相关软件包# rpm -qa|grep rshrsh-server-0.17-40.el5rsh-0.17-40.el52.检查服务是否开启# ch…

suse linux 10 ftp服务配置

在SUSE linux 10上安装配置FTP相对是比较方便的,具体过程如下: 1、首先检查是否有VSFTPD的包 #rpm -qa|grep vsftpd 如果没有,则可以从网上下载或使用SUSE 的系统安装盘来调取安装。 使用Suse的软件管理器,打开Yast,S…

在CentOS7 上实现PXE自动化安装Centos windows

在CentOS7 上实现PXE自动化安装Centos windows 一、安装前准备 关闭防火墙和SELINUX systemctl stop firewalld sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config setenforce 0二、安装相关软件包并启动服务 #1.安装 httpd、tftp、dhcpd yum -y install h…

正则表达式生成器

对正则表达式很头疼,是不是?每次看到都觉得像看天书似的,别说让人自己整一个出来了。下面这个网站可以帮你生成正则表达式,而且还可以根据不同的语言生成不同的代码示例,很强大。 http://www.txt2re.com/index.php3 打…

elasticsearch设置为开机自启动服务

elasticsearch设置为开机自启动服务 摘要:在es集群部署时,有时会因为系统原因导致服务终止,这时候就需要我们设置为开机自启动的系统服务 1、先查看当前的开机启动服务 chkconfig --list2、创建es 的系统启动服务文件,进入到 c…

《我的第一本c++书》读后感

第1章 C世界地图。 废话太多。我不认为这个对初学者有什么帮助。当然,这个只是占了16页的分量,可以完全无视。 第2章 与C第一次亲密接触 。 介绍IDE这个,我认为用视频比用文字描述要更加有用。这里还介绍了很多运行机理,我认为大可…

关于面试与被面试

2019独角兽企业重金招聘Python工程师标准>>> 换位思考--开始思考自己,思考他人。缘由是一位刚刚进来没几天的新同事离职了。 首先一个大的前提是:面试是一个双向选择的过程。 假如自己去面试的情况: 1. 对自己的方向有明确的认识&…

淘宝山寨IOS sdk

SDK分享——欢迎大家互助分享2/253 慧修店铺发表于 2011-03-24 16:29iOS的SDK 基于iOS开发的朋友,可以参考iOS的SDK,感谢北京天籁传音数字技术有限公司的杨子刚为大家分享。下载地址:http://download.taobaocdn.com/mtop/release/ApiDemo(ip…

linux 网卡驱动安装

用了俩天才搞定GA-6FVSA 主板的,在CentOs 5.3下的网卡驱动,好失败! 主要原因是,同事提供的网卡驱动太旧,已经不能适应新板子的需要。网卡芯片为 intel 82574 intel82578 。 附件为此芯片的驱动。转载于:https://…

VDI序曲二十七 IE7,IE8,IE9应用程序虚拟化

大家一定很期待我们如果要同时可以打开IE7,IE8,IE9怎么实现对吧? 那好,我就给大家讲下我们的VDI解决方案怎么实现这4种IE9怎么并存打开吧 今天我就讲IE7,IE8,IE9怎么做 我这以IE7为例: 我们用Hyper-V创建虚拟机RDIE7-SRV,系统是Wi…

面板Ext.Panel使用

概要1、Ext.Panel概述2、面板的五大组成部分3、面板的特点4、面板中的内容5、面板内容动态控制6、API概述1、Ext.Panel概述面板Panel是ExtJS控件的基础,很多高级控件都是在面板的基础上扩展的,还有其它大多数控件也都直接或间接与它有关系。应用程序的界…

matlab彩色图像缩放(双线性与双立方插值)

双线性插值原理可以参考这篇博文:双线性内插法 立方插值的推导我参考的这篇文章:Cubic interpolation 数学推导过程上面两篇文章解释得还是比较清楚,可以自己拿笔推一推,至于双线性和双立方可以理解为先行(或列&#x…

python面向对象编程之访问限制

廖雪峰python教程 面向对象编程之访问限制 https://www.liaoxuefeng.com/wiki/1016959663602400/1017496679217440 练习: 请把下面的Student对象的gender字段对外隐藏起来,用get_gender()和set_gender()代替,并检查参数有效性: …

灵活运用 SQL SERVER FOR XML PATH

FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作。那么以一个实例为主. 一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR…

python面向对象编程之实例属性和类属性

廖雪峰python教程 面向对象编程之实例属性和类属性 练习 为了统计学生人数,可以给Student类增加一个类属性,每创建一个实例,该属性自动增加: # -*- coding: utf-8 -*- class Student(object):count 0def __init__(self, name)…

技能的切实掌握 必须动手

读而不用 仍不知 过而不记 仍不识 动手在实践中掌握

LeetCode题库整理【Java】—— 1两数之和

LeetCode题库整理【Java】 1.两数之和 题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums [2, 7, 11, 15], target 9 因为 nums[0] nu…

poj3749

简单题 View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>usingnamespacestd;stringst;intmain(){//freopen("t.txt", "r", stdin);while(getline(cin, st)) {if(st "ENDOFINPUT")…