天天看点

【知识库】Linux快速搭建FTP服务器

作者:飞驰网

由于Linux(尤其是服务器版本)绝大多数都是命令行操作和文件操作,所以远程命令行服务(SSH)和文件上传下载服务(FTP),在Linux下就显得非常重要,今天这个文章教你快速搭建FTP服务器,同时避开一个让人很恼火的坑。

对小白算是扫盲,对老手算是是漏补缺,正戏开始——

1、前提安装好Linux,我安装的是UbuntuServer版本。

2、通过“安装器”安装ftp服务端软件(这里展开说一下安装器)

先说概念,安装器就是Linux下的应用商店,所以Linux版本很多,安装器有很多,甚至windows下都有各种开源软件的安装器,例如:pip,也有不少人把这个东西叫”包管理器“,总之:最粗暴的概念就是——应用商店。

我知道很多Windows用户和我一样,很讨厌应用商店这种模式,主要担心两样:

a、没有windows那些野生应用那么爽,到处传播,随意下载(其实这个方式安全隐患很重)。

b、担心应用商店某天倒闭了,或者应用更新了,之前安装的老应用无法重新下载。

其实这些问题已经不算是问题了,例如正常通过安装器安装FTP可以这么装(Linux命令提示符下输入下列命令):

sudo apt install SOFTNAME(软件名)

通过安装器安装指定版本的可以这么装:

sudo apt-get install SOFTNAME=0.36.2(版本号)

如果安装器中没有指定版本的软件,那就可以这么通过软件的开源地址装:

wget https://github.com/.../download/....gz

你心里嘀咕的问题通过以上方式都可以解决,如果你觉得还是不爽的话,我劝你去努力习惯,到哪个庙念哪儿的经。你别总拿Linux和Windows比,说到底这家伙是免费的东西,不花钱到这一步已属不易。

接下来用以下命令安装FTP服务端:

sudo apt-get install vsftpd           

现在你解读这个命令就很容易了吧——

通过管理员模式(sudo)执行应用商店命令(apt-get)安装(install)vsftpd这个软件

这个软件是linux下很著名的FTP服务端,名气相当于Windows下的serv-U。

3、开始配置FTP服务端

刚才说过Linux下的工作基本都是命令行,所以你配置(编写)文档,也需要 用一些命令行下的文本编辑器,例如:nano 或者 vi等等,下面以nano为例,输入:

sudo nano /etc/vsftpd.conf           

命令解读:用管理员模式(sudo) 启动写字板(nano) 打开某路径下的某文件(vsftpd.conf)。Linux下安装软件很有意思,就是不需要你安装前指派路径,同样的软件大家都在同样的位置安装,所以后期你做配置的时候,直接复制教程的命令即可。

配置文件打开后,按照下面的配置,对照一下默认的配置,“#”号是被注释的意思,该打开就打开,该关闭就关闭。

#允许匿名用户登录FTP服务器
anonymous_enable=NO 

#允许本地用户登录FTP服务器
local_enable=YES 

# 设置本地用户登录
local_enable=YES

# 本地用户可以写入
write_enable=YES

# chroot目录
chroot_local_user=YES

#对本地用户进行 chroot(把用户锁定在主目录)
allow_writeable_chroot=YES
chroot_local_user=YES 
chroot_list_enable=NO            

【重要知识点】

chroot_local_user=YES #本地用户全部锁定主目录

chroot_list_enable=NO #本地用户列表不起作用 换句话说上述规则对全部用户生效

注意:启用锁定用户主目录后如果不能登录,那么我们只要在主配置文件中加入一条参数: allow_writeable_chroot=YES 就可以了。

然后重启ftp服务:

sudo systemctl restart vsftpd           

4、接下来创建一个用户

当然了,此时你系统中的默认用户已经可以登录ftp了。

创建一个叫tom的用户:

sudo useradd -m tom

请注意:m参数指的是为tom用户创建一个用户文件夹,等价于:windows下创建新用户登陆后,这个用户拥有自己的“用户文件夹”一样,那里面通常有:我的文档、我的下载、桌面等等。

在Linux下这个m参数是很有必要的,它会在home目录下创建一个用户同名的目录,以便于你后期存放数据。不然你这个tom用户创建完,你后期的网站数据往哪儿存?根目录下建个文件夹虽然也可以,但不符合管理和维护规范,所以一切就按照标准来吧。

给tom用户设置密码

sudo passwd tom

进一步创建tom文件夹

上面说过使用了m参数以后,系统会自动在home下创建tom的用户目录,接下来我们在这个文件夹下创建业务目录,以方便后期部署网站或者其他程序使用,结构如下:

用户根目录:home/tom/

网站目录:/home/tom/website/

网站发布目录:/home/tom/website/wwwroot

网站日志目录:/home/tom/website/log

网站数据库目录(可选):/home/tom/website/database

把这几个目录创建好以后,最后给这个tom用户的文件夹分配权限,以保证FTP可以访问

sudo usermod -a -G ftp tom
sudo chown -R tom:ftp /home/tom/website/wwwroot
sudo chmod -R 775 /home/tom/website/wwwroot           
【知识库】Linux快速搭建FTP服务器

FTP客户端登录实例

如果你登录失败,十有八九是权限问题,Linux的权限让初学者觉得很麻烦,其实搞明白了也就那么回事,我下期尽量用言简意赅的语言给各位聊聊Linux权限的故事。

由此可见,其实路数和windows的差不多,都是装软件、建用户、然后把用户配置和ftp进行关联。流程知道了,细枝末节的小事儿,就在干中学学中干吧,祝各位进步。

继续阅读