专栏首页北京马哥教育原创投稿 | Linux运维.服务搭建.玩转FTP系列(一)

原创投稿 | Linux运维.服务搭建.玩转FTP系列(一)

豌豆贴心提醒,本文阅读时间5分钟

一. 简述

FTP作为主流文件传输协议,在Linux系统管理中扮演着重要的角色。和NFS,Samba被笔者看作是Linux从业者必知必会。本篇主要介绍如何快速创建FTP虚拟用户,帮助Linux运维新手快速上手学习。

二. 实践环境

虚拟机软件:VMware workstation 12.5

操作系统环境:CentOS6.5-x86_64

虚机配置:4vcpu 512M内存 8G系统磁盘 6G数据盘 2个以太网网卡(NAT+Host only)

三. 操作过程

1.安装vsftpd软件

yum -y install vsftpd

2.编辑配置文件

① 进入配置目录:cd /etc/vsftpd/

② 编辑配置文件:vim vsftpd.conf

在pam_service_name=vsftpd上,添加:

#开启虚拟用户访问功能

guest_enable=YES

#设置虚拟用户对应的系统账户为ftp

guest_username=ftp

#设置虚拟用户的配置目录

user_config_dir=/etc/vsftpd/vir_user_conf

③ 在/etc/vsftpd目录下,创建虚拟账户列表,如:

vim vir_user_ftp ,添加如下:

test

123456

保存,退出

④ 生成密码库

db_load -T -t hash -f /etc/vsftpd/vir_user_ftp /etc/vsftpd/vir_user_ftp.db

chmod 600 vir_user_ftp.db

⑤ 创建虚拟用户配置文件

mkdir vir_user_conf

cd vir_user_conf

touch test

⑥ 编辑vsftpd的pam模块认证文件

vim /etc/pam.d/vsftpd

注释到已有内容,添加一下两行,表示用自己创建的用户密码库来认证vsftpd的登陆

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vir_user_ftp

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vir_user_ftp

保存,退出。

⑦ 进入虚拟用户配置目录

cd /etc/vsftpd/vir_user_conf

vim test 添加一下内容:

local_root=/var/ftp/pub/test

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

anon_upload_enable=YES

anon_world_readable_only=YES

保存,退出

⑧ 创建test用户根目录

cd /var/ftp/pub/

mkdir test

⑨ 设置ACL访问控制

setfacl -R -m u:ftp:rwx test

⑩开启FTP服务器

service vsftpd start

service iptables stop

setenforce 0

根据以上十步,基本上可以搞定FTP虚拟用户配置

主要步骤:

1,配置vsftpd可使用虚拟用户

2,配置vsftpd访问控制

3,创建虚拟用户数据库,根目录,访问配置

4,关闭防火墙,SElinux,开启FTP服务,测试

注意事项:

1,采用虚拟用户时,不需要设置chroot,ftp是默认设置为限制在用户家目录

2,采用ACL访问控制比较灵活控制虚拟用户在系统级别的权限

3,在虚拟用户的根目录下,创建挂载点,如 hello

mount --bind /home/ hello

setfacl -R -m u:ftp:rwx hello 可以很灵活配置虚拟用户访问系统其他目录

4,如果FTP根目录是磁盘挂载,在格式化磁盘时,需要添加挂载选项,acl,以便能够ACL控制

本文作者:蛮大人

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux),作者:蛮大人

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-03-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 想要创建一个基于TCP实现的http服务器,应该怎么做?

    ? 作者:Y-ANG 来源: http://blog.csdn.net/qq_33951180/article/details/70239745 我们先了解一...

    小小科
  • 2017 年 Linux 的五大痛点

    到目前为止,糟糕的文档是 Linux 用户最头痛的问题。这里还有一些其他常见的问题。 -- Jeremy Garcia 到目前为止,糟糕的文档是 Linux 用...

    小小科
  • 使用 Python 分析 14 亿条数据

    Google Ngram viewer是一个有趣和有用的工具,它使用谷歌从书本中扫描来的海量的数据宝藏,绘制出单词使用量随时间的变化。举个例子,单词 Pytho...

    小小科
  • Python爬虫入门教程 23-100 石家庄链家租房数据抓取

    作为一个活跃在京津冀地区的开发者,要闲着没事就看看石家庄这个国际化大都市的一些数据,这篇博客爬取了链家网的租房信息,爬取到的数据在后面的博客中可以作为一些数据分...

    梦想橡皮擦
  • python pyqt5 QTabWidget

    import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.Qt...

    用户5760343
  • OpenStack与SDN控制器的集成

    1.OpenStack Neutron简介 Neutron添加了一层虚拟的网络服务让租户(用户)构建自己的虚拟网络。Neutron是对网络的虚拟化,该网络可以从...

    SDNLAB
  • 数据字典生成工具之旅(1):开篇有益

           最近在做公司需求的时候,发现一个很低效的点,在建表的时候需要使用公司自己开发的建模工具进行创建表,一个字段一个字段的复制粘贴让人受不了。于是萌发了...

    用户1168362
  • c++后台开发实习面经 - 今日头条

    4.tcp的三次握手四次挥手的全过程和状态,为什么要四次挥手,为什么要经过TIME WAIT状态

    牛客网
  • 我从编程教室毕业

    这篇文章在我的草稿箱里躺了有一年多,今天总算是发出来了。本文的作者是之前编程教室的实训生之一,原本在汽车制造车间里工作,后来成功转行为一名程序员,从事车载语音识...

    Crossin先生
  • ​现代浏览器内部揭秘(第一部分)

    这一博客系列由四部分组成,将从高级体系结构到渲染流程的细节来窥探 Chrome 浏览器的内部。如果你曾对浏览器是如何将代码转化为具有功能的网站,或者你并不确定为...

    ConardLi

扫码关注云+社区

领取腾讯云代金券