说明:

1、原文地址:http://www.krizna.com/ubuntu/setup-ftp-server-on-ubuntu-14-04-vsftpd/

2、今天要做一个网络日志的迁移程序,搬文件的话,想来想去还是用FTP吧。对这一块不是太熟悉,所以就上网搜索一下。先上百度试了试(就试试),结果搜出来的中文资料没一个靠谱的。遂Google了一下,瞬间搞定。翻译这篇文章为了让大家不再踩坑。以下为原文翻译:

FTP用于通过TCP网络从一台主机向另外一台主机传送文件。这篇文章解说了怎样在ubuntu 14.04上安装FTP服务器。流行的FTP服务器端软件有:PureFTP,VsFTPD,ProFTPD。这里我采用轻量并且坑少的VSFTPD。

在Ubuntu 14.04 上安装 FTP 服务

第一步>>更新库

krizna@leela:~$ sudo apt-get update

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

krizna@leela:~$ sudo apt-get install vsftpd

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

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

write_enable=YES
local_umask=

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

chroot_local_user=YES

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

allow_writeable_chroot=YES

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

pasv_enable=Yes
pasv_min_port=
pasv_max_port=

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

krizna@leela:~$ sudo service vsftpd restart

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

krizna@leela:~$ sudo useradd -m john -s /usr/sbin/nologin
krizna@leela:~$ sudo passwd john

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

/usr/sbin/nologin

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


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

安全的FTP(SFTP)

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

krizna@leela:~$ sudo apt-get install openssh-server

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

krizna@leela:~$ 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服务

krizna@leela:~$ sudo service ssh restart

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

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

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

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

krizna@leela:~$ sudo mkdir /home/john/www
krizna@leela:~$ sudo chown john:ftpaccess /home/john/www

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

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

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

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

翻译:在Ubuntu 14.04上安装FTP服务器的方法的更多相关文章

  1. 在Ubuntu 14.04 上安装 FTP 服务

    1. sudo apt-get update 2. sudo apt-get install vsftpd 3. adduser sammy Assign a password when prompt ...

  2. Ubuntu 14.04 上安装 Gurobi

    参考: Installing Gurobi 7 on Linux Ubuntu 14.04 上安装 Gurobi 1.在gurobi上创建一个账户,并登陆: 2.从gurobi optimizer上下 ...

  3. Ubuntu 14.04上安装caffe

    本来实在windows 10上尝试安装caffe,装了一天没装上,放弃; 改在windows上装ubuntu的双系统,装了一个下午,不小心windows的系统盘被锁死了,也不会unlock?只好含泪卸 ...

  4. ubuntu 14.04 上安装有道词典

    Ubuntu 14.04用户在安装前要更新系统,即update&dist-upgrade. 下载地址:32/64bits http://codown.youdao.com/cidian/lin ...

  5. 如何在 Ubuntu 14.04 上安装 Elasticsearch,Logstash 和 Kibana

    介绍 在本教程中,我们将去的 Elasticsearch 麋鹿堆栈安装 Ubuntu 14.04 — — 那就是,Elasticsearch 5.2.x,Logstash 2.2.x 和 Kibana ...

  6. 在Ubuntu 14.04 上安装网易云音乐

    之前因为电脑有网络的原因,一直使用网页网易云音乐听歌,最近电脑没网络使用,才发现网易云音乐有linux版本,果断下载. 在Chrome浏览器中,登陆官网下载Linux版本中的Ubuntu 14.04 ...

  7. 在ubuntu 14.04上安装2.6的内核

    1.到http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2这里下载最新的稳定版内核: 2.根据各自系统,安装如下软件:l b ...

  8. 在 Ubuntu 14.04 上安装 Ubuntu Tweak 0.8.8

    转自:http://linux.cn/article-3335-1.html 关于 Ubuntu Tweak,Ubuntu 老用户再熟悉不过了,Ubuntu tweak 相当于 windows 的优化 ...

  9. Ubuntu 14.04上安装Riak

    一.安装riak   1. 安装包:riak_2.0.2-1_amd64.deb    路    径:~/software/riak_2.0.2-1_amd64.deb 2. 安装riak     $ ...

随机推荐

  1. Sharepoint 2013 回收站知识整理

    回收站机制可有利于防止内容的永久删除与误删除. 一.SharePoint 2013 回收站包括两种:第一回收站(End user Recycle Bin items)与 第二回收站(Deleted f ...

  2. Interface => IDataErrorInfo

    Introduction to common Interfaces IDataErrorInfo Provides the functionality to offer custom error in ...

  3. python学习之 字符串前'r'的用法

    在打开文件的时候open(r'c:\....') 加r和不加''r是有区别的 'r'是防止字符转义的 如果路径中出现'\t'的话 不加r的话\t就会被转义 而加了'r'之后'\t'就能保留原有的样子 ...

  4. 解决pip国外安装源慢的问题

    用默认的pip安装源pypi.python.org由于在国外经常会出现超时的问题,而且安装速度极其的慢,如下图中的超时问题=>

  5. centos 6.7下 elasticsearch的安装

    1.下载elasticsearch的安装包,用ftp上传到linux系统下目录中,如在当前用户root的目录下新建目录elasticsearch,放入安装包 不要忘了添加执行权限 chmod +x * ...

  6. OceanBase架构(二)

    http://www.cnblogs.com/LiJianBlog/p/4779990.html OceanBase架构浅析(二)   单点性能 OceanBase架构的优势在于既支持跨行跨表事务,又 ...

  7. javascript中的真假值、数据类型判断以及+的特殊用法

    一.javascript中的假值 jQuery中拥有一组数量奇大的假值,包括 0,NaN(非数),''(空字符串),false,null,undefined 这些值在if判断中全部等于假,但这些值彼此 ...

  8. Leetcode: Battleships in a Board

    Given an 2D board, count how many different battleships are in it. The battleships are represented w ...

  9. Unity Tidy Tile Pack #1

    https://www.assetstore.unity3d.com/cn/#!/content/3276 版本: 1.1 下载地址 密码:mt8a

  10. AJax 跨域问题

    从AJAX诞生那天起,XMLHttprequest对象不能跨域请求的问题就一直存在.这似乎是一个很经典的问题了.是由于javascript的同源策略(这里不作深入探讨)所导致. 解决的办法,大概有如下 ...