个人工具

Pure-ftpd服务安装设置

来自Ubuntu中文

跳转至: 导航, 搜索

本文作者:fanhe

授权许可:创作共享协议

适用版本:7.10或其他(未测试)

文章状态:未完


Pure-FTPd FTP server

Pure-FTPd is a fast, production-quality, standards-conformant FTP server based upon Troll-FTPd. Features include chrooted home directories, virtual domains, built-in 'ls', anti-warez system, configurable ports for passive downloads, FXP protocol, bandwidth throttling, ratios, fortune files, Apache-like log files, fast standalone mode, atomic uploads, text / HTML / XML real-time status report, virtual users, virtual quotas, privilege separation, SSL/TLS and more.


不翻译了,中文的介绍就是:
快速,高质量,功能齐全的ftp服务器,最重要的是可以支持设置客户端默认编码,这样windows和linux之间用这个ftp就解决了乱码的问题了。这个功能vsftpd和proftpd都不具备,proftpd倒可以打补丁来支持,但传说是不安全,最後那个补丁没有更新了,貌似。

安装

sudo apt-get install pure-ftpd


配置

ubuntu 的 pure-ftpd 的配置文件很特别,都是放到 “/etc/pure-ftpd/conf” 目录下,而且是以选项为文件名,选项值为文件内容。譬如你需要启用--trustedgid选项,你只需要在该目录下建立一个名为:TrustedGID的文件,并且把信任的GID写入到文件中即可。
下面介绍的配置请把选项名作为文件名在 “/etc/pure-ftpd/conf” 下新建一个文本文件,然後内容就写选项的值。

匿名登录功能

默认情况下不开启匿名登录功能的,把 /etc/pure-ftpd/conf/NoAnonymous 的内容改为 no 在“系统->系统管理->用户名和组”新建一个叫“ftp”的用户名(一定要是这个名字),“高级”里面的主组的话可以新建一个叫“ftpgroup”的组来方便管理,如果不想“ftp”具备登录本地系统的功能,可以在账户属性的“高级”里的“高级设置”的“Shell”里选“/bin/false”,主目录就选一个你想要匿名用户登录是所在的目录就可以了,我是设置了“/var/ftp/public”。
到这里设置完毕後,重启 ftp 服务(最好重启系统)

sudo /etc/init.d/pure-ftpd restart

匿名用户应该就能登录了

虚拟用户设置

在“系统->系统管理->用户名和组”新建一个叫“ftpuser”的用户名(ftpuser可以是你自己喜欢的一个名字),主组的话可以推荐选“ftpgroup”来方便管理,如果不想“ftpuser”具备登录本地系统的功能,可以在账户属性的“高级”里的“高级设置”的“Shell”里选“/bin/false”,主目录就选一个你想要该用户登录是所在的目录就可以了(其实是我没有测试如果虚拟用户和实际用户的主目录设置了不同的目录的结果),我是设置了“/var/www/site”。
然後

sudo pure-pw useradd user1 -u ftpuser -g ftpgroup -d /var/www/site

会提示你设置一个密码的。 这个命令就是用本地系统中的 “ftpuser” 用户登录,虚拟用户名为“ftpuser”,“ftpuser” 的主目录在 “/var/www/site” 虚拟用户和本地用户的名字可以不一样的,自己改,其实ftpuser不建立也行,可以直接用“ftp”这个用户的。用户登录 ftp 後的主目录是以这条命令所指定的主目录为准的。

添加完之後,让 pure-ftpd 建立虚拟用户数据

sudo pure-pw mkdb

在/etc/pure-ftpd/auth下,创建一个软链接

ln -s /etc/pure-ftpd/conf/PureDB 60puredb

生成的文件在 “/etc/pure-ftpd/pureftpd.pdb”

常用配置

注意:源里面的pure-ftpd编译的时候应该没有添加所有的功能,所以可能某些选项不能用,在虚拟终端运行

sudo /etc/init.d/pure-ftpd restart

的时候看有没有错误信息,有的话就看哪个选项说有错误之类的,不要用那个选项就行了。

授权登录用户的最小Uid,默认uid小于100的用户,不允许登录

MinUID 100

你也可以

sudo cat /etc/passwd | grep ftpuser

查看一下uid,把MinUID 改为ftpuser的用户ID


匿名用户的最大带宽(KB/s)

AnonymousBandwidth 8

不解释主机名,选“yes”的话可以大大加快登录ftp的速度的

DontResolve yes 

客户端登录的时候的默认编码,开启这个选项的话,windows登录时就不会显示不了中文的了

ClientCharset gbk

这个应该是不允许客户端删除文件的

KeepAllFiles yes

每个IP的最大连接数

MaxClientsPerIP 5

文件夹权限

让 “/var/ftp/public” 目录什么人都能读写

sudo chmod -R 777 /var/ftp/public

具体的权限设置请自己设置,对权限不熟悉的可以自己搜索教程(其实我也不熟悉的)

我自己的设置(仅供参考):
“/var/ftp” 属于 “fanhe” 用户,“ftpgroup”组,权限775
“var/ftp/public” 属于“ftp”用户,“ftpgroup”组,权限775
因为我把 “fanhe” 加入了 “ftpgroup” 组了。


到此,一个简单的 ftp 服务器就建成了,还需要更多的设置的话,请看这里的翻译
http://forum.ubuntu.org.cn/viewtopic.php?t=28052&highlight=pure-ftpd