这篇是学生时代搭建FTP时总结的文章,翻出来再看发现基本忘了。原文如下。
最近要在一台Ubuntu机器上搭建一个FTP服务器,供局域网内简单的资料分享。linux中常用的ftp工具有vsftpd、ProFTPD、Pure-FTPd,查阅资料后最终选择了Pure-FTPd,原因如下:
- Pure-FTPd可以设置客户端默认编码,设为GBK即可解决windows访问时中文乱码问题。
- 虚拟用户支持,允许限制带宽、空间配额,可以用自带的pure-pw管理虚拟用户。
注:冷罡华的《Ubuntu Server最佳方案》里也讲到了Pure-FTPd的配置,不过是用MySQL来管理用户。而《鸟哥的Linux私房菜》中则使用了vsftpd。
安装步骤
一、安装
sudo apt-get install pure-ftpd
二、添加两个组,分别是管理组ftpadmins和匿名用户组ftpusers(官方文档中建议把匿名用户单独设在一个用户组中)。
sudo groupadd ftpadmins
sudo groupadd ftpusers
三、添加用户
sudo useradd ftpadmin –g ftpadmins –d /dev/null –s /bin/false
sudo useradd ftpuser –g ftpusers –d /var/ftp/public –s /bin/false
四、创建目录
sudo mkdir /var/ftp
sudo mkdir /var/ftp/public
sudo mkdir /var/ftp/private
五、更改权限
sudo chown –R ftpadmin:ftpadmins /var/ftp
sudo chmod –R 755 /var/ftp
六、添加虚拟用户。
虚拟用户用pure-pw
配置,命令格式为pure-pw useradd/usermod/userdel
等。
sudo pure-pw useradd admin –u ftpadmin –d /var/ftp
【此处需要输入密码】
每次修改用户设置都要更新虚拟用户数据库(不必重启服务),也可以在每次使用pure-pw
的时候加上-m
参数立即更新虚拟数据库。
sudo pure-pw mkdb
七、加入puredb数据库软连接
cd /etc/pure-ftpd/auth
sudo ln –s /etc/pure-ftpd/conf/PureDB 60puredb
Pure-ftpd的配置文件位于/etc/pure-ftpd/conf
下,以设置项作为文件名,以该项的设置值作为文件的内容——这个比较奇葩。
配置完后的文件和值如下所示:
AnonymousCanCreateDirs ----------no
AnonymousCantUpload ---------- yes
AutoRename ---------- yes
BrokenClientsCompatibility ---------- yes
ChrootEveryone ---------- yes
ClientCharset ---------- gbk
CreateHomeDir ---------- yes
DontResolve ---------- yes
FSCharset ---------- utf-8
KeepAllFiles ---------- no
MaxClientsNumber ---------- 100
MaxClientsPerIP ---------- 5
MaxDiskUsage ---------- 90
MinUID ---------- 1000
NoAnonymous ---------- no
NoChmod ---------- yes
PAMAuthentication ---------- yes
PureDB ---------- /etc/pure-ftpd/pureftpd.pdb
TrustedGID ---------- 1001
UnixAuthentication ---------- no
每次修改服务器设置后都需要重新启动服务:
sudo /etc/init.d/pure-ftpd restart