热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Ubuntu14.04上安装搭建FTP服务器详解

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

今天要做一个网络日志的迁移程序,搬文件的话,想来想去还是用FTP吧。FTP用于通过TCP网络从一台主机向另外一台主机传送文件。这篇文章解说了怎样在Ubuntu 14.04上安装FTP服务器。流行的FTP服务器端软件有:PureFTP,VsFTPD,ProFTPD。这里我采用轻量并且坑少的VsFTPd。

在Ubuntu 14.04 上安装 FTP 服务

第一步>>更新库

root@local:~$ sudo apt-get update

第二步>>采用如下命令安装VSFTPD的包

root@local:~$ sudo apt-get install vsftpd

第三步>>安装完成后打开 /etc/vsftpd.conf 文件,按如下所述修改。

取消如下行的注释(行号为29和33)

write_enable=YES
local_umask=022

>> 取消如下行的注释(行号120)来阻止除了用户文件夹意外的文件夹。

chroot_local_user=YES

在文件最后增加如下一行:

allow_writeable_chroot=YES

>>添加如下行开启消极模式

pasv_enable=Yes
pasv_min_port=40000
pasv_max_port=40100

第四步>>用如下命令重启vsftpd服务

root@local:~$ sudo service vsftpd restart

第五步>>现在ftp服务器正在监听21端口。用如下命令创建用户。用 /usr/sbin/nologin 脚本来阻止ftp用户访问bash脚本。

root@local:~$ sudo useradd -m john -s /usr/sbin/nologin
root@local:~$ sudo passwd john

第六步>>开启nologin脚本的开机访问。打开 /etc/shells 并把如下行添加进去。

/usr/sbin/nologin

现在试着用刚创建的用户通过21端口连接ftp服务器。客户端采用 winscp 或 filezilla  。验证用户是不是真的不能访问home文件夹之外的文件夹。

#在Ubuntu 14.04上安装FTP服务器详解

需要特别说明一下的是,在21端口上使用ftp是非常危险的。强烈建议使用SFTP。请看下面的SFTP的配置。

安全的FTP(SFTP)

SFTP称作“安全的FTP”,它使用ssh文件传输协议。所以我们需要安装openssh-server。如果还没装的话,执行如下命令。

root@local:~$ sudo apt-get install openssh-server

第七步>> 为FTP用户创建一个新的用户组 ftpaccess。

root@local:~$ sudo groupadd ftpaccess

第八步>>在 /etc/ssh/sshd_config 中做如下修改

>>找到并注释掉下面一行

Subsystem sftp /usr/lib/openssh/sftp-server

在文件的最后增加如下行

Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

第九步>>重启sshd服务

root@local:~$ sudo service ssh restart

第十步>>下面几步用来创建访问SFTP服务的用户。

创建用户john,属于 ftpaccess 组并且执行 /usr/bin/nologin 脚本

root@local:~$ sudo useradd -m john -g ftpaccess -s /usr/sbin/nologin
root@local:~$ sudo passwd johnChange ownership for the home directory.
root@local:~$ sudo chown root /home/john

在home文件夹创建一个用于写入文件的文件夹并修改文件夹的所有者。

root@local:~$ sudo mkdir /home/john/www
root@local:~$ sudo chown john:ftpaccess /home/john/www

现在用SFTP试着连接服务器(端口:22),并确保用户可以往 www 文件夹上传文件,而且也不能访问 home文件夹以外的文件。

#在Ubuntu 14.04上安装搭建FTP服务器详解

如果你想让FTP和SFTP并存,在创建用户时按照上面的第十步操作就行。对于已经存在的用户,可以像下面这样把他们移动到ftpaccess组,创建文件夹结构并修改所有权。

root@local:~$ sudo usermod john -g ftpaccess -s /usr/sbin/nologin
root@local:~$ sudo chown root /home/john
root@local:~$ sudo mkdir /home/john/www
root@local:~$ sudo chown john:ftpaccess /home/john/www

现在你可以通过FTP,也可以通过SFTP向 www文件夹上传文件了。

玩转vsftpd服务器的四大高级配置:2013-09/90565.htm

vsFTPd配置教程:2013-09/90562.htm

Ubuntu实用简单的FTP架设 2012-02/55346.htm

Ubuntu 上架设FTP服务器和Apache服务器 2011-04/35295.htm

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 2013-06/86250.htm

RHEL6平台下SeLinux和vsftpd的匿名上传的简单案例 2013-04/82300.htm

Linux系统vsftpd源码安装 2013-03/81475.htm

openSUSE 13.2/13.1 下安装配置 FTP服务器 vsftpd  2014-12/110070.htm

Ubuntu 专题页面 =2


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 本文介绍了在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一,尤其是在大规模系统中,数据库集群已经成为必备的配置之一。文章详细介绍了主从数据库架构的好处和实验环境的搭建方法,包括主数据库的配置文件修改和设置需要同步的数据库等内容。MySQL的主从复制功能在国内外大型网站架构体系中被广泛采用,本文总结了作者在实际的Web项目中的实践经验。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 在IDEA中运行CAS服务器的配置方法
    本文介绍了在IDEA中运行CAS服务器的配置方法,包括下载CAS模板Overlay Template、解压并添加项目、配置tomcat、运行CAS服务器等步骤。通过本文的指导,读者可以轻松在IDEA中进行CAS服务器的运行和配置。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
author-avatar
断肠人blogma_791
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有