FTP是比较常见的一种服务了,很多公司都会有可能使用到FTP服务器,本文将以最简洁的办法使用系统自带的ssh软件在1分钟内搭建一台使用方便的FTP服务器。
SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP为SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。执行以下脚本在一分钟之内即可完成SFTP服务器的搭建。

#!/bin/bash
#===============================================================================
#          FILE: SftpCreate.sh
#         USAGE: ./SftpCreate.sh
#   DESCRIPTION: Create a Sftp Server
#       OPTIONS: None
#  REQUIREMENTS: Nene
#        AUTHOR: Geeklp (IVAN DU), geeklp@qq.com
#  ORGANIZATION: GEEKLP
#       CREATED: 2017年12月19日 10时29分12秒
#      REVISION: V1.1
#===============================================================================
set -o nounset                              # Treat unset variables as an error
Users=('chinapay' 'ctbx' 'haoyilian' 'hbgyl' 'huaxia' 'jczh' 'kjb' 'lykj' 'lzkj' 'msyh' 'nyjt' 'pingan' 'xldz' 'yigw' 'yytwallet')
PassWord='Neoby1314'
#modify the /etc/ssh/sshd_config
sed -i '/Subsystem/s/^/#/' /etc/ssh/sshd_config
sed -i '/^#Subsystem/a\Subsystem       sftp    internal-sftp' /etc/ssh/sshd_config
#---------Create SFTPUsers----------
for UserName in ${Users[@]};
do
id -u $UserName>& /dev/null
if [ $? -ne 0 ]; then
mkdir /home/$UserName #创建用户SFTP的root目录
adduser $UserName -d /home/$UserName/$UserName #创建用户并指定用户目录
echo "The account $UserName  was created!"
echo $PassWord | passwd $UserName --stdin  #从标准输入流中读取密码
usermod -s /bash/false $UserName #禁止ssh登录
echo "
Match User $UserNameX11Forwarding noAllowTcpForwarding noForceCommand internal-sftpChrootDirectory /home/$UserName">>/etc/ssh/sshd_config
else
echo "The username $UserName was existed!"
fi
done
systemctl restart sshd
#----------END-----------------------

在以上脚本中有几个关键点:
1、用户目录。出于安全考虑,分别创建独立用户根目录,如果多个用户都在同一个根目录下,其他用户是可以看到别人的用户目录的,这也就是执行创建/home/UserName/UserName的目的所在。这也是与网上大部分文章不同的地方之一。当然,用户目录不一定需要用户的home目录,只要用户对目录具有所有权都是可以的。
2、禁止用户的ssh登录,本方案中使用的指定登录脚本为/bin/false,当然也还有其他方案。
3、修改配置文件。在本方案中,涉及到配置文件的2个地方的修改。Subsystem这一行的修改,Match User $UserName后面需要加一行来指定用户根目录。

一分钟在Linux环境下创建一台SFTP服务器(含账户创建)相关推荐

  1. Linux环境下c语言静态链接库和动态链接库创建和使用

    库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀. 面对比一下两者: 静态链接库:当要使用时,连接器会找出程序所需的函数,然后将它们拷贝到执行文件,由于这种拷贝是完整的,所以一旦连接成功, ...

  2. linux 传真 邮件,如何在Linux环境下架设一台传真服务器(2)

    四.启动Hylafax 若要在启动的时候自动的运行Hylafax,在Mandrake中运行drakxservices命令,Red Hat中运行setup命令,接着手工运行下面的命令: /etc/rc. ...

  3. linux cvs服务,Linux环境下轻松搭建CVS服务器

    CVS是一种广泛应用的.开源的.透明于网络的版本控制系统.用户使用CVS时,首先要架设一台CVS服务器,在CVS服务器上导入项目实例.设置CVS项目访问控制等.而客户则通过客户端来访问CVS服务器,客 ...

  4. c语言Linux用线程创建文件,Linux环境下C语言线程创建---简单代码

    在Linux环境下用C语言编写线程创建. //file name: pthreadtext.c #include #include //线程头文件 //pthread不是linux下的默认的库,也就是 ...

  5. linux中python安装_linux环境下的python安装过程图解(含setuptools)

    这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装. 一.下载python源码包 打开ubuntu下的 ...

  6. linux下的python安装,linux环境下的python安装过程

    一.下载python源码包 打开ubuntu下的shell终端,通过wget命令下载python源码包,如下图所示: wget https://www.python.org/ftp/python/3. ...

  7. linux环境下创建MyOS虚拟机

    为什么80%的码农都做不了架构师?>>>    操作系统课的老师参考于渊的作法,要求我们做一个简单操作系统的实验,老师的实验指导是在winXP环境下完成的,但由于我现在已经将ubun ...

  8. linux环境生成weblogic密钥,Linux环境下创建weblogic服务.doc

    Linux环境下创建weblogic服务 weblogic用户登录10.218.0.25. 执行一下命令 cd /bea/weblogic92/common/bin ./config.sh 选择创建一 ...

  9. Linux创建线程读取双口数据,linux环境下读写一次双口ram尽然要十几个毫秒。(附驱动代码)...

    linux环境下读写一次双口ram尽然要十几个毫秒.(附驱动代码) 我用的双口ram是IDT70V28,手册上说的读写时间应该是几个纳秒,我写了个linux驱动,然后做测试,发现读写一次的时间尽然是十 ...

最新文章

  1. 电大计算机基础知识试题是什么样的,计算机应用基础知识(电大试题)
  2. 外观设计模式(门面模式)
  3. jQuery 的属性操作方法
  4. 使用构建器模式来帮助您的单元测试
  5. ios Photos框架
  6. token会被截取吗_做抖音搬运其他网站视频可以吗?
  7. OpenCV下载/OpenCV国内镜像/opencv_contrib下载
  8. 收银怎样挂单和取单_挂单取单(PC收银)
  9. Python Algorithms Learning Notes(1)--Asymptotic Notations
  10. cmd的常用命令分类详解
  11. 虚拟机找不到文件路径
  12. 基于opencv的图像拼接
  13. 【Grafana】【一】Grafana 简介
  14. Font Awesome文字图标的使用
  15. MALLOWS模型平均-R代码
  16. 如何搭建个人博客网站(Mac)
  17. 基于华为Atlas200DK合设环境的花卉识别
  18. 北京平面设计培训哪家好 ?平面设计培训课程有哪些?
  19. C++模板(函数模板,类模板)的基本使用与非类型模板参数与模板的特化
  20. 这些开源项目,你都知道吗?

热门文章

  1. 基于 EntityFramework 的数据库主从读写分离架构(1) - 原理概述和基本功能实现...
  2. zabbix 监控端口,其他端口和此端口类似
  3. 关于truncate与checkident
  4. python项目实战:爬取无限火力大暴起全章节
  5. SQLServer CDC数据迁移和数据抽取功能介绍 2
  6. Lync和Exchange 2013集成PART5:UCS和HD头像
  7. excel 2010 学习笔记一 Vlookup 函数的使用
  8. 实时监控用户输入--中文输入解决方案
  9. 使用Apache Commons Configuration读取配置信息
  10. c# 修饰词public, protected, private,internal,protected的区别