CentOS 搭建pure-ftpd

本文提供了一步一步的指南来搭建PureFTPd服务器,包括下载、安装、配置、启动以及创建虚拟用户的过程。教程还包含了解决安装过程中可能遇到的问题,如端口占用,以及如何通过配置文件实现基本的用户权限管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://hi.baidu.com/sudoer/item/a2d66dd12db20295260ae7f4

本文主要讲解pure-ftpd服务器的搭建,以及虚拟用户的添加与使用【虚拟用户没有涉及到MYSQL,如需MYSQL的虚拟用户,请掠过此文】

 

1、找到最新版本的PureFTPd

去网站http://download.pureftpd.org/pub/pure-ftpd/releases/我们找到最新版本的的下载链接是http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.35.tar.gz

2、下载并安装

# cd /usr/local/src

# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.35.tar.gz

# tar -zxvf pure-ftpd-1.0.35.tar.gz

# cd pure-ftpd-1.0.35

# ./configure --with-puredb --with-everything --with-rfc2640

# make

# make check

# make install

#注:

--with-puredb是启用虚拟用户数据库

--prefix是安装的目标目录
--with-eyerything是安装所有功能
--with-rfc2640,此参数UTF-8,gb2312等异构系统的语言集转换

另外如果需要与mysql连接,修改提示语言等还需要在此指定,例如:
--with-mysql=/opt/mysql
--with-language=simplified-chinese
本文不涉及。


如需了解configure的更多选项请看http://download.pureftpd.org/pub/pure-ftpd/doc/README
软件已经被安装到 /usr/local/sbin/pure-ftpd,我们只需执行以下代码即可启动PureFTPd。

# /usr/local/sbin/pure-ftpd &

#注:此处执行完命令有可能报一个错误: Unable to start a standaloneserver: Addressalready in use [大概意思就是端口被占用了]

解决方案:

切换到root权限,用命令:fuser -n tcp 21 查看,然后kill [pid]掉21端口的进程,继续执行 /usr/local/sbin/pure-ftpd & 此命令,如果依然不行,删除你之前安装过的ftp服务器,重启系统重复以上操作。

3、开机启动PureFTPd

# cp contrib/redhat.init /etc/init.d/pure-ftpd
# chmod 755 /etc/init.d/pure-ftpd
# chkconfig --add pure-ftpd
# chkconfig --level 3 pure-ftpd on

4、配置文件

# cp configuration-file/pure-ftpd.conf /etc
# cp configuration-file/pure-config.pl /usr/local/sbin/pure-config.pl
# chmod 744 /etc/pure-ftpd.conf
# chmod 755 /usr/local/sbin/pure-config.pl
编辑配置文件:[此步可以略过]

# vi /etc/pure-ftpd.conf

设置成以下值:

UnixAuthentication            yes

#MinUID                      100

UnixAuthentication yes表示系统用户可以登录FTP。
MinUID 100表示用户的ID大于100才能登录,我们注释掉它,任何的用户ID都能登录了。

5、启动和停止PureFTPd

# service pure-ftpd stop
# service pure-ftpd start
# service pure-ftpd restart     

6、创建一个ftpgroup组

# groupadd ftpgroup

7、创建一个ftptestuser用户,并把用户添加到ftpgroup组

# useradd ftptestuser -g ftpgroup -s /sbin/nologin

8、为ftptestuser用户设置密码

# passwd ftptestuser

重复输入两次即可

9、创建pure-ftpd虚拟用户

# alias pure-pw=/usr/local/bin/pure-pw

# pure-pw useradd username1 -u 503 -g 503 -d /var/ftpdir

#注:

username1:ftp虚拟用户的用户名

-u 503:创建出来的虚拟用户属于哪个主用户[涉及到权限问题 属主]

-g 503:虚拟用户属于哪一个组[涉及到权限问题 属组]

至于上面的503是怎么来的可以用下面的命令查看

# cat /etc/passwd

之前添加的用户在最后一行,如我的:

ftptestuser:x:503:503::/home/ftptestuser:/sbin/nologin

前面的503意思就是说ftptestuser这个用户的id,后面的503就是此用户所属组的id,此处的id换成你们自己的就行了,

上面的命令运行完毕之后按了回车连续输入两次密码即可{也就是ftp密码}然后继续运行下面的命令

# pure-pw mkdb

# 注:

添加完用户一定要运行pure-pw mkdb命令,意思就是说把新添加的用户添加到数据库文件,然后可以使用下面的命令看下用户是否真的添加成功了

# pure-pw list

显示结果如下:

username1           /var/ftpdir/./

用户名                      用户主目录

10、修改主目录权限

首先确认/var/ftpdir目录是否存在,不存在的话使用下面的命令创建

# mkdir /var/ftpdir

接下来修改目录的权限

# chown -R ftptestuser:ftpgroup /var/ftpdir

让ftpdir目录的属主权限变成ftptestuser的,组权限改成ftpgroup组,然后看下是否是正确修改了 ls -l /var    如果正确修改那应该就是下面显示的结果

drwxr-xr-x   2 ftptestuser ftpgroup 4096  2月 22 02:44 ftpdir

之前没修改前应该是 root  root

到这就大功告成了,打开你的ftp客户端进行连接测试下看看是否成功了呢~

ip的话你应该知道吧? 不知道的话ifconfig 自己看下

用户名就是之前创建的那个虚拟用户username1

密码就是你自己输入的啦....

登录上去之后自己上传一些文件看看  是否正常,如果之前配置的都正常,在上传上面出现错误的话那就是你的ftpdir目录权限设置有问题了。

 

下面是我上传的一些东西,可以用命令自己看下权限什么的都对不对,主要的就是权限问题了。

[root@localhost pure-ftpd-1.0.35]# ls -l /var/ftpdir
总用量 4
drwxr-xr-x 2 ftptestuser ftpgroup 4096  2月 22 02:51 Downloads
[root@localhost pure-ftpd-1.0.35]# ls -l /var/ftpdir/Downloads
总用量 13464
-rw-r--r-- 1 ftptestuser ftpgroup  995808  2月 22 02:51 aliedit.exe
-rw-r--r-- 1 ftptestuser ftpgroup   76622  2月 22 02:51 cknebhggccemgcnbidipinkifmmegdel.crx
-rw-r--r-- 1 ftptestuser ftpgroup 9078981  2月 22 02:51 clbhjjdhmgeibgdccjfoliooccomjcab.crx
-rw-r--r-- 1 ftptestuser ftpgroup 1797989  2月 22 02:51 jy_www_wisecleaner_com (1).sql.gz
-rw-r--r-- 1 ftptestuser ftpgroup 1797989  2月 22 02:51 jy_www_wisecleaner_com.sql.gz
-rw-r--r-- 1 ftptestuser ftpgroup   25923  2月 22 02:51 lpkdnfkjhdkcpimadpdcgapffceacjem.crx
-rw-r--r-- 1 ftptestuser ftpgroup    1852  2月 22 02:53 X_GFWList.bak

 

扩展阅读:

如果在搭建的时候遇到这样的报错信息:   421 Unknown authentication method: puredb:/etc/pureftpd.pdb 

一开始我自己搭建的时候也遇到了,然后在国外网站找到的答案,解决方案如下:

Do below.   #做以下事情

wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz
tar -zxf pure-ftpd-1.0.21.tar.gz
./configure --with-puredb --with-ftpwho
make check
make
make install

Now make two files.   #看看下面两个文件是否都存在不存在的话自己创建下   touch命令创建即可

/etc/pureftpd.pdb
/etc/pureftpd.passwd

Then execute below.    #然后执行下面的命令

/usr/local/bin/pure-pw mkdb
/usr/local/sbin/pure-ftpd -A -B -j -lpuredb:/etc/pureftpd.pdb &

You can add virtual users like this:  #然后你可以像这样子添加虚拟用户(就是下面的命令)

pure-pw useradd user -u username -d /home/username -m

具体连接:http://www.webhostingtalk.com/archive/index.php/t-686333.html    不明白的可以去看下。

 

另外这篇文章也很不错,写的很详细,有兴趣的可以去看下:http://dongfengyu.bokee.com/5781058.html   


<think>嗯,用户想在Linux系统上配置和搭建FTP服务器,询问如何安装和配置vsftpdpure-ftpd。首先,我需要回忆这两种FTP服务器的安装步骤和常见配置方法。 对于vsftpd,我记得它是很多Linux发行版默认包含的,所以安装可能比较简单,用yum或apt-get就行。安装完成后,主要的配置文件通常是/etc/vsftpd/vsftpd.conf。需要修改这个文件来设置匿名访问、本地用户权限、目录限制等。比如,anonymous_enable控制匿名登录,local_enable允许本地用户登录,write_enable开启写权限。然后要重启服务,可能还要处理防火墙和SELinux的问题,尤其是被动模式可能需要额外配置端口范围。用户可能遇到权限问题,比如目录不可写,或者SELinux阻止访问,这时候需要调整目录权限或用setsebool命令。 然后是pure-ftpd,这个可能需要先安装EPEL仓库,因为CentOS默认源里没有。安装后,配置文件可能在/etc/pure-ftpd/pure-ftpd.conf,但有些系统可能用/etc/pure-ftpd/conf下的单独文件。配置项比如MinUID,如果用户登录失败,可能需要调整这个值,比如从1000改到500。还要创建虚拟用户,用pure-pw命令添加用户并指定主目录,生成数据库文件。同样,防火墙要开放21端口和被动模式端口范围。日志方面,可能需要查看/var/log/messages里的错误信息,比如530错误可能是MinUID的问题,或者用户主目录权限不对。 用户可能遇到的问题包括登录认证失败、被动模式无法连接、目录权限不足等。需要检查配置文件中的参数,确保用户UID符合MinUID设置,目录权限正确,防火墙规则开放相关端口。此外,SELinux可能会阻止FTP服务访问某些目录,需要适当调整策略或者禁用。 还要注意两种服务器的区别,vsftpd配置相对集中,而pure-ftpd可能有模块化的配置方式。用户可能需要根据具体需求选择,比如是否需要虚拟用户支持,或者更细粒度的权限控制。引用中提到的pure-ftpd的配置参考链接和错误处理提示也需要整理进去,帮助用户排查常见问题。 最后,生成相关问题需要考虑用户可能的后续疑问,比如性能优化、安全性设置、日志管理、虚拟用户配置以及与其他服务的集成等。确保覆盖安装、配置、故障排除和高级使用场景,帮助用户全面了解FTP服务器的搭建和维护。</think>### 在Linux系统中安装配置vsftpdpure-ftpd的步骤 #### 一、安装和配置vsftpd 1. **安装vsftpd** -CentOS/RHEL系统: ```bash yum install vsftpd ``` - 在Ubuntu/Debian系统: ```bash apt-get install vsftpd ``` 2. **修改配置文件** 默认配置文件路径为 `/etc/vsftpd/vsftpd.conf`[^2]。 需调整以下关键参数: - 允许匿名登录: ```ini anonymous_enable=YES ``` - 允许本地用户登录: ```ini local_enable=YES ``` - 启用写权限: ```ini write_enable=YES ``` - 限制用户主目录: ```ini chroot_local_user=YES ``` 3. **启动服务并设置防火墙** ```bash systemctl start vsftpd systemctl enable vsftpd firewall-cmd --add-service=ftp --permanent # CentOS ufw allow ftp # Ubuntu ``` 4. **常见问题处理** - **SELinux限制**:若用户无法上传文件,执行: ```bash setsebool -P ftp_home_dir on ``` - **被动模式配置**:在配置文件中添加: ```ini pasv_min_port=40000 pasv_max_port=50000 ``` --- #### 二、安装和配置pure-ftpd 1. **安装依赖和pure-ftpd** -CentOS/RHEL系统需先安装EPEL源: ```bash yum install epel-release yum install pure-ftpd ``` - 在Ubuntu/Debian系统: ```bash apt-get install pure-ftpd ``` 2. **修改配置文件** 配置文件路径为 `/etc/pure-ftpd/pure-ftpd.conf`[^5]。关键配置: - 调整最小UID限制(避免530错误): ```ini MinUID 500 ``` - 启用虚拟用户数据库: ```ini PureDB /etc/pure-ftpd/pureftpd.pdb ``` 3. **创建虚拟用户** ```bash pure-pw useradd ftpuser -u ftpuser -d /data/ftpdir # 创建用户并指定主目录 pure-pw mkdb # 生成数据库文件 ``` 4. **启动服务与防火墙** ```bash systemctl start pure-ftpd firewall-cmd --add-port=21/tcp --permanent firewall-cmd --reload ``` 5. **日志排查** - 检查登录失败原因: ```bash tail -f /var/log/messages # 查看530错误提示[^5] ``` --- #### 三、两种方案的对比 | **特性** | **vsftpd** | **pure-ftpd** | |----------------|----------------------------------------|----------------------------------------| | 配置复杂度 | 简单,集中式配置[^2] | 模块化配置,支持虚拟用户[^3] | | 安全性 | 支持chroot和SELinux集成 | 提供MinUID限制和数据库认证 | | 适用场景 | 快速部署基础FTP服务 | 需要细粒度权限控制的场景 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值