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服务-实战案例的更多相关文章

  1. 使用Zabbix监控Nginx服务实战案例

    使用Zabbix监控Nginx服务实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.编译安装nginx步骤详解并开启状态页 博主推荐阅读: https://www.cn ...

  2. 3.awk数组详解及企业实战案例

    awk数组详解及企业实战案例 3.打印数组: [root@nfs-server test]# awk 'BEGIN{array[1]="zhurui";array[2]=" ...

  3. php 网站301重定向设置代码实战案例

    php 网站301重定向设置代码实战案例 301重定向就是页面永久性移走的意思,搜索引擎知道这个页面是301重定向的话,就会把旧的地址替换成重定向之后的地址. 302重定向就是页面暂时性转移,搜索引擎 ...

  4. 分布式事务之——tcc-transaction分布式TCC型事务框架搭建与实战案例(基于Dubbo/Dubbox)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/73731363 一.背景 有一定分布式开发经验的朋友都知道,产品/项目/系统最初为了 ...

  5. springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin

    相信现在已经有很多小伙伴已经或者准备使用springcloud微服务了,接下来为大家搭建一个微服务框架,后期可以自己进行扩展.会提供一个小案例: 服务提供者和服务消费者 ,消费者会调用提供者的服务,新 ...

  6. 企业Shell面试题及企业运维实战案例(三)

    1.企业Shell面试题1:批量生成随机字符文件名案例 使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下: ...

  7. (转)awk数组详解及企业实战案例

    awk数组详解及企业实战案例 原文:http://www.cnblogs.com/hackerer/p/5365967.html#_label03.打印数组:1. [root@nfs-server t ...

  8. (转)linux route命令深入浅出与实战案例精讲

    linux route命令深入浅出与实战案例精讲 http://blog.51cto.com/oldboy/1119453 深入浅出之-route命令实战使用指南 http://blog.51cto. ...

  9. 基于SpringCloud的Microservices架构实战案例-在线API管理

    simplemall项目前几篇回顾: 1基于SpringCloud的Microservices架构实战案例-序篇 2基于SpringCloud的Microservices架构实战案例-架构拆解 3基于 ...

随机推荐

  1. 【selenium】- 自动化框架环境搭建

    本文由小编根据慕课网视频亲自整理,转载请注明出处和作者. 1. 环境搭建 本课程选用的是selenium + java.   2. java环境的搭建 环境变量配置: 以win10为例,打开控制面板& ...

  2. lightoj 1084 - Winter(dp+二分+线段树or其他数据结构)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1084 题解:不妨设dp[i] 表示考虑到第i个点时最少有几组那么 if a[i ...

  3. ‎Cocos2d-x 学习笔记(24) ParticleSystem ParticleSystemQuad

    1. ParticleSystem ParticleData是存储粒子数据的类,ParticleSystem会关联一个ParticleData对象. ParticleSystem直接继承了Node.T ...

  4. Redis哨兵(Sentinel)模式快速入门

    更多内容,欢迎关注微信公众号:全菜工程师小辉.公众号回复关键词,领取免费学习资料. 当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用. ...

  5. HTML5 01. 布局、语义化标签、智能化表单、表单元素/标签/属性/事件、多媒体、类操作、自定义属性

    1.知识点 lang = “en”   所用语言是英文 文档结构更简洁 IE8一下不支持h5c3 书写更宽松 div没有语义 标签语义化:在合适的地方使用合适的标签 对seo优化友谊 网页经典布局 页 ...

  6. EF Core 通过延迟加载获取导航属性数据

    EF 6及以前的版本是默认支持延迟加载(Lazy Loading)的,早期的EF Core中并不支持,必须使用Include方法来支持导航属性的数据加载. 当然在EF Core 2.1及之后版本中已经 ...

  7. Go语言基础之网络编程

    现在我们几乎每天都在使用互联网,我们前面已经学习了如何编写Go语言程序,但是如何才能让我们的程序通过网络互相通信呢?本章我们就一起来学习下Go语言中的网络编程. 关于网络编程其实是一个很庞大的领域,本 ...

  8. window下载安装maven

    Maven官网下载地址:https://maven.apache.org/download.cgi,这里我们下载zip包即可  解压到安装目录下  新建环境变量MAVEN_HOME,复制Maven安装 ...

  9. DDD领域驱动实践记录

    虽然很早之前就已经了解过DDD相关的内容了,但一方面网上理论知识太过碎片化导致难以理解,另一方面实践内容太少导致想动手的时候无从下手.于是就渐渐淡忘了这方面实践的念头. 最近重新了解了DDD相关的知识 ...

  10. 算法与数据结构基础 - 递归(Recursion)

    递归基础 递归(Recursion)是常见常用的算法,是DFS.分治法.回溯.二叉树遍历等方法的基础,典型的应用递归的问题有求阶乘.汉诺塔.斐波那契数列等,可视化过程. 应用递归算法一般分三步,一是定 ...