FreeBSD Pure-ftpd 配置详解

一、安装配置pure-ftpd

[root@bsd01 ~]#cd /usr/ports/ftp/pure-ftpd
[root@bsd01 pure-ftpd]#make install clean

然后会出现“make config”的界面,选择需要的组件即可:
Options for pure-ftpd 1.0.21_2
────────────────────────────────────
[ ] LDAP           Support for users in LDAP directories
[X] MYSQL           Support for users in MySQL database
[X] PAM             Support for PAM authentication
[ ] PGSQL           Support for users in PostgreSQL database
[X] PRIVSEP         Enable privilege separation
[X] PERUSERLIMITS   Per-user concurrency limits
[X] THROTTLING     Bandwidth throttling
[X] BANNER         Show pure-ftpd welcome upon session start
[ ] UPLOADSCRIPT   Support uploadscript daemon
[X] UTF8           Support for charset conversion (expreimental)
[X] SENDFILE       Support for the sendfile syscall

────────────────────────────────────

安装完毕后,可以清除一下配置选项:
[root@bsd01 pure-ftpd]#make rmconfig

*如果你想让pureftpd开机自动启动,则编辑/etc/rc.conf文件,加入“ pureftpd_enable="YES" ”。

先复制pure-ftpd.conf配置文件,并授予可以修改的权限:
[root@bsd01 pure-ftpd]#cd /usr/local/etc
[root@bsd01 etc]#cp pure-ftpd.conf.sample pure-ftpd.conf
[root@bsd01 etc]#chmod u+w pure-ftpd.conf

现在编辑pure-ftpd.conf文件:

[root@bsd01 etc]#vi pure-ftpd.conf
NoAnonymous     no      
修改为
NoAnonymous     yes

# PureDB               /etc/pureftpd.pdb     
修改为
PureDB               /usr/local/etc/pureftpd.pdb

#CreateHomeDir       yes
修改为
CreateHomeDir       yes

然后重启一下pure-ftpd服务:

[root@bsd01 etc]#/usr/local/etc/rc.d/pure-ftpd restart

Stopping pureftpd.
Waiting for PIDS: 2861.
Starting pureftpd.
Running: /usr/local/sbin/pure-ftpd -A -c50 -B -C8 -D -fftp -H -I15 -lmysql:/usr/local/etc/pureftpd-mysql.conf -lpuredb:/usr/local/etc/pureftpd.pdb -L2000:8 -m4 -s -U133:022 -u100 -j -k99 -Z

二、pureftpd用户的管理

pureftpd的用户可以使用2种方法存放,一种为使用Mysql数据库存放;一种为文本数据库,也就是pureftpd.pdb文件。 我们采用的是pdb方案。

我们先要在系统上建立一个用户,提供给ftp的虚拟用户做权限映射:

[root@bsd01 ~]#pw group add ftpuser -g 2001
[root@bsd01 ~]#pw user add joeson -u 2001 -g 2001 -s /dev/null -d /home/web -m
[root@bsd01 ~]#id joeson ; finger joeson
uid=2001(joeson) gid=2001(joeson) groups=2001(ftpuser)
Login: joeson                           Name: User joeson
Directory: /home/web                     Shell: /dev/null
Never logged in.
No Mail.
No Plan.

使用pureftpd.pdb文本数据库来管理ftp虚拟用户

pureftpd.pdb虚拟用户只要使用pure-pw命令来管理,pure-pw有很多参数,可以使用“pure-pw --help”来查看。
大致为:pure-pw useradd | usermod  | userdel  | passwd   | show         | mkdb       | list。
作用为:       添加用户 | 修改用户 | 删除用户 | 修改密码 | 查看登陆状态 | 写入数据库 | 列出所有用

现在我们做一个实例:在文本数据库中建立一个ftp用户:用户名:joeson,密码:123,home目录:/data/web:

1).  先建立目录:

[root@bsd01 ~]#cd /data
[root@bsd01 data1]#mkdir web
[root@bsd01 data1]#touch ./web/test.php

[root@bsd01 data1]#chown -R 2001:2001 web
[root@bsd01 data1]#ls -l web
total 0
-rw-r--r--   1 joeson   ftpuser   0 Nov 27 06:15 test.coos

2).  然后添加用户:

[root@bsd01 data1]#pure-pw useradd joeson -u 2001 -g 2001 -d /data/web
Password:123
Enter it again:123
[root@bsd01 data1]#pure-pw mkdb      
[root@bsd01 data1]#pure-pw list
joeson               /data/web/./

Look!我们的joeson也可以正常登陆。
现在,pure-ftpd-已成功部署。

注: 添加和删除直接在pureftpd.pdb里操作就可以了