Vsftp服务-实战案例
Vsftp 实验案例一:(本地用户)
试验版本:Linux7.X版本
公司内部现在有一台FTP 和WEB 服务器,FTP 的功能主要用于维护公司的网站内容,包括上传文
件、创建目录、更新网页等等。公司现有两个部门负责维护任务,他们分别适用team1 和team2
帐号进行管理。先要求仅允许team1 和team2 帐号登录FTP 服务器,但不能登录本地系统,并将
这两个帐号的根目录限制为/var/www/html,不能进入该目录以外的任何目录。
ftp 和www web服务器相结合。
www web服务器根目录: /var/www/html
只允许:team1和team2两用户 可以上传。 vsftp禁止匿名。
分析:
将FTP 和WEB 服务器做在一起是企业经常采用的方法,这样方便实现对网站的维护,为了增强安
全性,首先需要使用仅允许本地用户访问,并禁止匿名用户登录。其次使用chroot 功能将team1
和team2 锁定在/var/www/html 目录下。如果需要删除文件则还需要注意本地权限
解决方案:
1)建立维护网站内容的ftp 帐号team1 和team2 并禁止本地登录,然后设置其密码
[root@localhost ~]# useradd -s /sbin/nologin team1
[root@localhost ~]# useradd -s /sbin/nologin team2
[root@localhost ~]# echo "123456" | passwd --stdin team1
Changing password for user team1.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "123456" | passwd --stdin team2
Changing password for user team2.
passwd: all authentication tokens updated successfully.
2)配置vsftpd.conf 主配置文件并作相应修改
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO:禁止匿名用户登录
local_enable=YES:允许本地用户登录
改:
为:
local_root=/var/www/html:设置本地用户的根目录为/var/www/html
chroot_list_enable=YES:激chroot 功能
chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名;
allow_writeable_chroot=YES :允许锁定的用户有写的权限
保存退出;
(3)建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帐号
[root@localhost vsftpd]# touch /etc/vsftpd/chroot_list
[root@localhost ~]# ll !$
-rw-r--r-- 1 root root 0 Nov 10 17:08 /etc/vsftpd/chroot_list
[root@xuegod63 ~]# vim /etc/vsftpd/chroot_list #写入以下内容,一行,一个用户名
team1
team2
(4)修改本地权限
[root@localhost ~]# ll -d /var/www/html/
drwxr-xr-x. 2 root root 4096 Oct 6 2011 /var/www/html/
[root@localhost ~]# chmod -R o+w /var/www/html/
[root@localhost ~]# ll -d /var/www/html/
drwxr-xrwx. 2 root root 4096 Oct 6 2011 /var/www/html/
(5)重启vsftpd 服务使配置生效
service vsftpd restart
vsftp实验案例二:(匿名用户,创建文件下载上传文件。。。)
公司技术部准备搭建一台功能简单的FTP 服务器,允许所有员工上传和下载文件,并允许创建用
户自己的目录。
分析:
允许所有员工上传和下载文件需要设置成允许匿名用户登录并且需要将允许匿名用户上传功能
开启,
anon_mkdir_write_enable 字段可以控制是否允许匿名用户创建目录。
[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.back
vim /etc/vsftpd/vsftpd.conf #修改以下内容
允许匿名用户访问
anonymous_enable=YES
允许匿名用户上传文件并可以创建目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
Vsftp实验案例二:(匿名用户)
公司技术部准备搭建一台功能简单的FTP 服务器,允许所有员工上传和下载文件,并允许创建用
户自己的目录。
分析:
允许所有员工上传和下载文件需要设置成允许匿名用户登录并且需要将允许匿名用户上传功能
开启,
anon_mkdir_write_enable 字段可以控制是否允许匿名用户创建目录。
[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.back
vim /etc/vsftpd/vsftpd.conf #修改以下内容
允许匿名用户访问
anonymous_enable=YES
允许匿名用户上传文件并可以创建目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
启动服务:
service vsftpd restart
测试:
[root@localhost vsftpd]# chown ftp.ftp /var/ftp/pub/
然后测试,是可以新建文件夹了,但是不能重命名,不能删除!
[root@localhost vsftpd]# vim vsftpd.conf
anon_other_write_enable=YES ##默认没有,需要手动添加下这行
重启服务,即可重命名文件夹。
下面我们来一步一步的实现,先修改目录权限,创建一个公司上传用的目录,叫xuegoddata,设置拥有者为ftp 用户所有,目录权限是755
[root@localhost
vsftpd]# mkdir /var/ftp/xuegoddata
[root@localhost
vsftpd]# chown ftp.ftp /var/ftp/xuegoddata/
[root@localhost
vsftpd]# ll -d !$
ll -d
/var/ftp/xuegoddata/
drwxr-xr-x 2 ftp
root 4096 Mar 9 19:30
/var/ftp/xuegoddata/
然后重新启动服务
[root@localhost
~]# service vsftpd restart
Shutting down
vsftpd:
[ OK ]
Starting vsftpd
for vsftpd:
[ OK ]
最后发现能删除和创建文件了;实验完成!
Vsftp实验案例三:(虚拟用户登录ftp)
实验说明;
一、允许所有人访问/var/ftp/soft目录不能创建文件和目录,不允许上传文件,devadm虚拟户可以对该目录有修改上传,删除等操作权限。
二、sales虚拟用户只能读取/var/market。其余没有任何权限,salesadm对该目录有删除修改、上传、创建等权限。
三、不允许本地用户登录。
1、 关闭防火墙
[root@localhost
~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
2、 安装vsftpd软件
3、 建立虚拟用户账户文件
[root@localhost ~]#
vim /etc/vsftpd/vusers.list
devadm
123456a
sales
123456b
salesadm
123456c
4、 创建数据库文件
[root@localhost
~]# cd /etc/vsftpd/
[root@localhost
vsftpd]# db_load -T -t hash -f vusers.list
vusers.db
[root@localhost
vsftpd]# chmod 600 /etc/vsftpd/vusers.*
[root@localhost
vsftpd]# file vusers.db #查看转换后的文件类型
vusers.db:
Berkeley DB (Hash, version 9, native byte-order) #提示这些是成了
5、添加虚拟用户的映射账号、FTP根目录
[root@localhost
~]# useradd -d /var/ftproot
-s /sbin/nologin zhangsan
[root@localhost
~]# chmod 755 /var/ftproot
6、 为虚拟用户建立PAM认证文件
[root@localhost
~]# vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so
db=/etc/vsftpd/vusers
account
required pam_userdb.so db=/etc/vsftpd/vusers
7、 修改vsftpd配置,添加虚拟用户支持
[root@localhost vsftpd]# vim
/etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd.vu //修改
userlist_enable=NO //修改
anon_root=/var/ftp/soft //末尾添加
guest_enable=yes //添加
guest_username=zhangsan //添加
user_config_dir=/etc/vsftpd/vusers_dir //添加
allow_writeable_chroot=YES //添加
8、 创建虚拟用户独立的配置文件
[root@localhost vsftpd]# mkdir /etc/vsftpd/vusers_dir
[root@localhost
vsftpd]# cd /etc/vsftpd/vusers_dir
[root@localhost
vusers_dir]# touch devadm
[root@localhost
vusers_dir]# vim devadm
local_root=/var/ftp/soft
write_enable=YES
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
root@localhost
vusers_dir]# vim sales
local_root=/var/market
[root@localhost
vusers_dir]# vim salesadm
local_root=/var/market
write_enable=YES
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
[root@localhost
vusers_dir]# systemctl restart vsftpd
9、创建目录和文件准备验证(遇到文件上传不了或者修改不了的,记得修改权限或者属主)
[root@localhost
vsftpd]# mkdir /var/ftp/soft
[root@localhost vusers_dir]# touch /var/ftp/soft/devadm
[root@localhost
vusers_dir]# mkdir /var/market
[root@localhost
var]# chmod 755 /var/market/
[root@localhost
vusers_dir]# touch /var/market/sales
[root@localhost
var]# chmod 755 /var/ftp/soft
[root@localhost
vusers_dir]# chown zhangsan /var/market
[root@localhost
vusers_dir]# chown zhangsan /var/ftp/soft
Vsftp服务-实战案例的更多相关文章
- 使用Zabbix监控Nginx服务实战案例
使用Zabbix监控Nginx服务实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编译安装nginx步骤详解并开启状态页 博主推荐阅读: https://www.cn ...
- 3.awk数组详解及企业实战案例
awk数组详解及企业实战案例 3.打印数组: [root@nfs-server test]# awk 'BEGIN{array[1]="zhurui";array[2]=" ...
- php 网站301重定向设置代码实战案例
php 网站301重定向设置代码实战案例 301重定向就是页面永久性移走的意思,搜索引擎知道这个页面是301重定向的话,就会把旧的地址替换成重定向之后的地址. 302重定向就是页面暂时性转移,搜索引擎 ...
- 分布式事务之——tcc-transaction分布式TCC型事务框架搭建与实战案例(基于Dubbo/Dubbox)
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/73731363 一.背景 有一定分布式开发经验的朋友都知道,产品/项目/系统最初为了 ...
- springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin
相信现在已经有很多小伙伴已经或者准备使用springcloud微服务了,接下来为大家搭建一个微服务框架,后期可以自己进行扩展.会提供一个小案例: 服务提供者和服务消费者 ,消费者会调用提供者的服务,新 ...
- 企业Shell面试题及企业运维实战案例(三)
1.企业Shell面试题1:批量生成随机字符文件名案例 使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下: ...
- (转)awk数组详解及企业实战案例
awk数组详解及企业实战案例 原文:http://www.cnblogs.com/hackerer/p/5365967.html#_label03.打印数组:1. [root@nfs-server t ...
- (转)linux route命令深入浅出与实战案例精讲
linux route命令深入浅出与实战案例精讲 http://blog.51cto.com/oldboy/1119453 深入浅出之-route命令实战使用指南 http://blog.51cto. ...
- 基于SpringCloud的Microservices架构实战案例-在线API管理
simplemall项目前几篇回顾: 1基于SpringCloud的Microservices架构实战案例-序篇 2基于SpringCloud的Microservices架构实战案例-架构拆解 3基于 ...
随机推荐
- Unity3D 基于ShadowMap的平滑硬阴影
前言 传统的ShadowMap在明暗边缘处都会有很难看的锯齿,因此一般得到的结果会比较难看,常规的解决办法都会在使用ShadowMap渲染阴影的时候通过背面剔除把这种缺陷隐藏掉,最后剩下一个影子.但是 ...
- 消费者、生产者Java代码示例,wait
箱子中的苹果代表资源,现在有消费者从箱子中拿走苹果,生产者往箱子中放苹果.代码如下: 资源--箱子中的苹果: public class Box { int size; int num; public ...
- NLP(六) 分块、句法分析、依存分析
内置分块器 分块:从文本中抽取短语 import nltk text = 'Lalbagh Botanical Garden is a well known botanical garden in B ...
- 关于工作流引擎ccflow待办分类 研究与技术实现
关于工作流引擎待办分类 研究与技术实现 关键字:工作流引擎 BPM系统 待办类型 名词:待办 概要介绍:待办就是当前的登录人员要处理的工作,在工作流程里面的节点类型不同,业务场景不同,我们把待办分为如 ...
- 2019nc#9
题号 标题 已通过代码 题解/讨论 通过率 团队的状态 A The power of Fibonacci 点击查看 进入讨论 69/227 未通过 B Quadratic equation 点击查看 ...
- Atcoder D - A or...or B Problem(思维)
题目链接:http://agc015.contest.atcoder.jp/tasks/agc015_d 题意:给出两个数b,a(a>=b)问{a,a+1,....,b}的集合内取任意数求或运算 ...
- 【LeetCode】[0002] 【两数之和】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 给出两个非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字.如果 ...
- .NET Core 微信小程序退款——(统一退款)
继上一篇".NET Core 微信小程序支付——(统一下单)后",本文将实现统一退款功能,能支付就应该能退款嘛,一般涉及到钱的东西都会比较敏感,所以在设计退款流程时一定要严谨,不能 ...
- 【LeetCode】105#从前序与中序遍历序列构造二叉树
题目描述 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9 ...
- EditPlus5.0破解激活
永久激活用户名激活码: 用户名:Vovan注册码:3AG46-JJ48E-CEACC-8E6EW-ECUAW 然后重启软件即可