TranslateProject/translated/tech/20150906 How To Set Up Your FTP Server In Linux.md
cvsher caffc9312c [translated]20150906 How To Set Up Your FTP Server In Linux.md
[translated]20150906 How To Set Up Your FTP Server In Linux.md
2015-09-08 11:08:06 +08:00

4.5 KiB
Raw Blame History

如何在linux中搭建FTP服务

在本教程中我将会解释如何搭建你自己的FTP服务。但是首先我们应该来的学习一下FTP是什么。

###FTP是什么###

FTP 是文件传输协议File Transfer Protocol的缩写。顾名思义FTP是用于计算机之间通过网络进行文件传输。你可以通过FTP在计算机账户间进行文件传输也可以在账户和桌面计算机之间传输文件或者访问在线软件文档。但是需要注意的是多数的FTP站点的使用率非常高并且在连接前需要进行多次尝试。

FTP地址和HTTP地址即网页地址非常相似只是FTP地址使用ftp://前缀而不是http://

###FTP服务器是什么###

通常拥有FTP地址的计算机是专用于接收FTP连接请求的。一台专用于接收FTP连接请求的计算机即为FTP服务器或者FTP站点。

现在我们来开始一个特别的冒险我们将会搭建一个FTP服务用于和家人、朋友进行文件共享。在本教程我们将以vsftpd作为ftp服务。

VSFTPD是一个自称为最安全的FTP服务端软件。事实上VSFTPD的前两个字母表示“非常安全的(very secure)”。该软件的构建绕开了FTP协议的漏洞。

尽管如此你应该知道对于安全的文件管理和传输还有更好的解决方法SFTP(使用OpenSSH)。FTP协议对于共享非敏感数据是非常有用和可靠的。

####在rpm distributions中安装VSFTPD####

你可以使用如下命令在命令行界面中快捷的安装VSFTPD

dnf -y install vsftpd

####在deb distributions中安装VSFTPD####

你可以使用如下命令在命令行界面中快捷的安装VSFTPD

sudo apt-get install vsftpd

####在Arch distribution中安装VSFTPD####

你可以使用如下命令在命令行界面中快捷的安装VSFTPD

sudo apt-get install vsftpd

####配置FTP服务####

多数的VSFTPD配置项都在/etc/vsftpd.conf配置文件中。这个文件本身已经有非常良好的文档说明了因此在本节中我只强调一些你可能进行修改的重要选项。使用man页面查看所有可用的选项和基本的 文档说明:

man vsftpd.conf

根据文件系统层级标准FTP共享文件默认位于/srv/ftp目录中。

允许上传:

为了允许ftp用户可以修改文件系统的内容如上传文件等“write_enable”标志必须设置为 YES。

write_enable=YES

允许本地用户登陆:

为了允许文件/etc/passwd中记录的用户可以登陆ftp服务“local_enable”标记必须设置为YES。

local_enable=YES

匿名用户登陆

下面配置内容控制匿名用户是否允许登陆:

# Allow anonymous login
anonymous_enable=YES
# No password is required for an anonymous login (Optional)
no_anon_password=YES
# Maximum transfer rate for an anonymous client in Bytes/second (Optional)
anon_max_rate=30000
# Directory to be used for an anonymous login (Optional)
anon_root=/example/directory/

根目录限制Chroot Jail

译者注chroot jail是类unix系统中的一种安全机制用于修改进程运行的根目录环境限制该线程不能感知到其根目录树以外的其他目录结构和文件的存在。详情参看chroot jail

有时我们需要设置根目录chroot环境来禁止用户离开他们的家home目录。在配置文件中增加/修改下面配置开启根目录限制Chroot Jail:

chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd.chroot_list

“chroot_list_file”变量指定根目录监狱所包含的文件/目录(译者注:即用户只能访问这些文件/目录)

最后你必须重启ftp服务在命令行中输入以下命令

sudo systemctl restart vsftpd

到此为止你的ftp服务已经搭建完成并且启动了


via: http://itsfoss.com/set-ftp-server-linux/

作者:alimiracle 译者:cvsher 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出