×

ubuntu LTS下搭建FTP服务器

96
彬哲
2016.01.18 23:17* 字数 540

服务器是合唱团的,因为要做图像视频资源的共享,所以搭个FTP服务器是必须的。根据会长的建议选择了vsftpd,Linux菜鸟一枚,在ubuntu服务器命令行模式下更是有种萌萌哒的感觉,历经坎坷,终于配好。

1 安装vsftpd

一条命令搞定,比window下安装软件方便千百倍。

sudo apt-get install vsftpd

2 FTP配置

对于博合来说,基本的需求就是管理员可以上传文件,团员可以方便地下载文件。所以FTP的缺省配置基本够用了,只需要做少量的用户权限配置,这里不再列出缺省配置。

2.1 最重要的几个配置文件
/etc/vsftpd.conf 这个是FTP的主配置文件,最为重要

vsftpd.conf中,用户权限相关的2个参数
chroot_list_enable
userlist_enable

这2个参数配合以下4个文件,能实现不同的用户访问权限配置
/etc/ftpusers 
/etc/vsftpd.chroot_list
/etc/vsftpd.user_list

其中以下两个文件需要自己创建
/etc/vsftpd.chroot_list
/etc/vsftpd.user_list
 
2.2 配置FTP传输相关的参数
  • 转到主配置文件
sudo vi etc/vsftpd.conf
  • 在vsftpd.conf配置以下选项
# 登录FTP后的欢迎信息
ftpd_banner=welcome to phd.chorus!
#
# 并发客户端连接数
max_clients=15
#
# 单个IP并发连接数
max_per_ip=1
#
# 下载限速10Mbps
local_max_rate=10000000

重启服务,验证是否配置成功,如果没有报错,则说明配置成功。

sudo service vsftpd restart
2.3 配置用户权限
  • 转到主配置文件
sudo vi etc/vsftpd.conf
  • 在vsftpd.conf中进行用户权限配置
# 不允许匿名用户登录
anonymous_enable=NO
#
# 是否允许登录用户有写权限,属于全局设置
local_umask=022
#
# 允许本地用户组的用户登录
local_enable=YES 
#
# 允许本地用户上传文件
write_enable=YES 
#
# 本地用户登入时,将被切换到定义的目录下,默认值为各用户的家目录 
local_root = /home/phdchorus
#
# 控制本地用户目录切换权限
# 在默认配置下,本地用户登录FTP后可以使用cd命令切到其他目录,这样会有安全隐患
# 通过配置chroot_list_enable | chroot_list_file | chroot_local_user这3个参数,控制用户切换目录的权限
# 通过搭配,能实现以下几种效果
# 1、当chroot_list_enable=YES,chroot_local_user=YES时,chroot_list_file中列出的用户,可以切换到其他目录,未在文件中列出的用户,不能切换到其他目录。
# 2、当chroot_list_enable=YES,chroot_local_user=NO时,chroot_list_file中列出的用户,不能切换到其他目录,未在文件中列出的用户,可以切换到其他目录。
# 3、当chroot_list_enable=NO,chroot_local_user=YES时,所有用户都不能切换到其他目录。
# 4、当chroot_list_enable=NO,chroot_local_user=NO时,所有用户都可以切换到其他目录。
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
chroot_local_user=YES
#
#
#
# 访问控制设置(控制用户访问)
# 如果设置了local_enable=YES,那么所有的用户(包括root)都能通过FTP登录服务器,出于安全考虑,需要对某些用户进行限制。
# 启用userlist后,依据userlist_deny的设置,禁止或允许vsftpd.user_list中的用户登录
#
# 启用userlist
userlist_enable=YES
#
# 文件内容为允许登录或禁止登录的用户名,每个用户一行。 
userlist_file=/etc/vsftpd/vsftpd.user_list
#
# 若该选项设为YES,系统就会deny(禁止)userlist_file中的用户登陆FTP
# 若该选项设为NO,系统就仅允许userlist_file中的用户登陆FTP
userlist_deny=NO 
#
#
# /etc/vsftpd/ftpusers文件专门用于列出禁止访问FTP服务的用户列表
# ftpusers的优先级要高于其他配置文件
#
2.4 用户组及权限配置
  • 添加一个FTP用户组
groupadd ftpgroup
  • 添加一个FTP帐号,可上传可下载可删除文件
# --home 设置该用户根目录
# --ingroup 设置该用户属于ftpgroup用户组
# --on-create-home不要为这个用户创建家目录
adduser --home /home/iamboher --ingroup ftpgroup iamboher

根据提示填入密码和该用户相关的信息(全名、电话等),这样我们就为FTP添加了一个用户iambohe

  • 添加虚拟用户

对于博士合唱团来说,FTP上的需求有三点:

  1. 所有团员都能够访问iamboher的home目录并下载其中的文件
  2. 部分团员能够上传文件(分享照片,视频)
  3. 少数几个团员对该目录拥有所有的权限(上传、下载、删除等)

由于某些文件夹要分享给所有的博合团员,所以我们需要建立多个虚拟用户,给这些用户配置不同的权限(只读、读写、读写删)。同时把这些用户映射到本地用户'iamboher'下,使得这些用户指向相同的根目录。

服务器开发
Web note ad 1