安装
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
不解释 WordPress 主机名,选 “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” 组了。