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. 12_goto语句的使用

    1.goto是一个关键字,其作用是运行到goto语句进行跳转,立即执行goto后面所对应标签的语句2.结构:goto 标签名(任意起)3.goto语句尽量不要跨函数使用,否则会使代码看起来非常乱,可读 ...

  2. 剑指Offer(二十六):二叉搜索树与双向链表

    剑指Offer(二十六):二叉搜索树与双向链表 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/ ...

  3. 用java实现取1-100之间的99个不重复的随机数 然后输出没有被取出的数字

    package cn.kgc.springtest2.demo1.dao; import java.util.BitSet; /** * @author * @create 2019-08-02 17 ...

  4. MySQL5.7.27报错[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated

    mysql5.7.27在运行更新语句时出现如下情况,mysql5.6之前没有这种情况出现. of ORDER BY clause is not in GROUP BY clause and conta ...

  5. 杭电多校第二场 hdu 6315 Naive Operations 线段树变形

    Naive Operations Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 502768/502768 K (Java/Other ...

  6. codeforces 765 D. Artsem and Saunder(数学题)

    题目链接:http://codeforces.com/contest/765/problem/D 题意:题目中给出你两个公式,g(h(x))==x,h(g(x))==f(x).现给你f(x) 让你求符 ...

  7. 题解 CF499A 【Watching a movie】

    题意 看一部电影,从第一分钟开始看,你每次可以按下快进键,快进x分钟,电影有n个精彩片段,问看到所有精彩片段至少需要看多少分钟电影.(数据保证能看到所有精彩片段) 我们可以发现答案其实 就是间隔时间% ...

  8. 在javascript中的浏览器兼容问题以及兼容浏览器汇总(默认事件,阻止冒泡,事件监听。。。)以及解决方式详解

    在javascript中常见的浏览器兼容问题,以及解决方式. 在前端工作当中我们遵循这样的原则:渐进增强和优雅降级   渐进增强(progressive enhancement): 针对低版本浏览器进 ...

  9. 不权威的国产CPU发展历程

    最近进行了一些国产化相关工作 趁着周末有时间,自己整理一下这段时间的学习内容. 毕竟不是处理器和芯片的业内人士,里面多有纰漏,请谅解. 希望可以作为入门学习的简单知识. 1.0 远古时代 unix 世 ...

  10. python数据结构——线性表

    线性表 线性表可以看作是一种线性结构(可以分为顺序线性结构,离散线性结构) 1. 线性表的种类: 顺序表 元素存储在一大块连续存储的地址中,首元素存入存储区的起始位置,其余元素顺序存放. (元素之间的 ...