如何使用Pure-FTPd +虚拟用户安装和配置FTP服务器

我是喜欢创新和学习新事物的人之一,不久前我不得不安装和配置FTP服务器,因此我决定以不同于以往的方式进行操作。

在这种情况下,我选择使用带有虚拟用户的 FTP 服务,用户将存储在加密文件中(用户名、密码、设置等),所有这些都通过Pure FTPd实现。

在这里我将向您展示如何做到这一点......好吧,让我们开始吧 

首先,指定本教程中的命令用于Debian等发行版或基于它们的发行版,但是,如果有人在其服务器上使用其他发行版,则他们必须安装相同的软件包并使用下面设置的设置,唯一需要更改的内容是安装命令。

他们将读取的所有命令都将以root身份执行,如果您愿意,可以在每行前添加“ sudo”。

1.首先我们需要安装 Pure FTPd:

apt-get install pure-ftpd

输出将如下所示结束:

安装纯FTPD

2.该服务已激活,但如果我们没有正确配置,它将毫无用处。假设我们有一个很长但几乎是标准的配置文件;它包含一些常规内容,例如禁止匿名用户访问等等。

cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd.conf

3.好的,假设我们的 FTP 文件夹是 /var/www/ftp/,我们想要创建一个用户可以将信息上传到 /var/www/ftp/sysadmin/ 文件夹的用户。让我们在终端中输入以下命令:

pure-pw useradd sysadmin -u 2001 -g 2001 -d /var/www/ftp/sysadmin/

这意味着:

pure-pw:用于操作Pure-FTPd用户的命令
useradd:我们表示将添加一个用户
sysadmin:我要创建的用户
-u 2001:该用户的UserID
-g 2001:该用户的GroupID
-d / var / www / ftp / sysadmin /:该文件夹将成为该用户的家,即他们将在其中上传内容的文件夹

当您输入上一行时,它将询问您该用户的密码。

他们必须先前在/ var / www / ftp /中创建了sysadmin文件夹。

4.现在需要刷新用户数据库文件。为此,请进入 /etc/pure-ftpd/ 文件夹(cd /etc/pure-ftpd),然后在终端中输入以下命令:

pure-pw mkdb

5.现在我们必须启动 Pure-FTPd,但要指定使用虚拟用户文件。首先,让我们停止该服务:

/etc/init.d/pure-ftpd stop

然后,我们将确保默认情况下它不会正常启动:

chmod -x /etc/init.d/pure-ftpd

现在,我们以自己的方式启动服务:

/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb

6.如果您尝试使用 FileZilla 之类的应用程序,您会发现可以使用创建的用户顺利连接;但是,您将无法复制任何文件或创建目录。这是因为文件夹 /var/www/ftp/sysadmin/(在本例中为用户的主目录)没有相应的权限。可以通过以下方式解决此问题:

chown -R 2001:2001 /var/www/ftp/sysadmin/

请记住,Uid 和 Gid 2001 是我们创建的用户的 Uid 和 Gid,我们是使用上一步 3 中的命令创建的 

7.要停止该服务,只需在同一终端上按 [Ctrl]+[C],或者在另一个终端上执行以下操作:

killall pure-ftpd

现在,我们将指示该服务将在服务器启动时自动从系统启动,为此,我们修改了/etc/rc.local文件,并在最后一行“ exit 0”之前放置了用于启动FTP服务的命令:

/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb

换句话说,它看起来像这样:

rc-本地-纯-ftpd

您可以使用nano,vi或您喜欢的编辑器来编辑文件,或者,如果您愿意,可以复制并粘贴以下命令,这将使您的工作更加轻松:

perl -pi -e "s[exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" /etc/rc.local && echo "exit 0" >> /etc/rc.local

…是的…正如您所读到的,“facilitate”,这是一个广泛的命令,是的,但它只是用 perl 和无害的 echo 替换文本 

8.完成上述步骤后,重启服务器,您会看到 pure-ftpd 服务已启动并准备就绪。

如何删除用户?

正如我之前提到的,我们需要使用pure-pw命令来操作用户。要删除一个用户(例如,sysadmin),我们可以使用以下命令:

cd /etc/pure-ftpd/
pure-pw userdel sysadmin
pure-pw mkdb

请记住,每当对任何用户进行更改时,都必须重新生成用户的虚拟数据库文件,该文件位于/ etc / pure-ftpd /中,并使用pure-pw mkdb生成/更新该文件。

无论如何,我认为朋友们没有什么可添加的,请邀请您阅读pure-pw的帮助,因为它可以为我们提供比我在这里展示的更多的东西(这只是一个简短且基本的教程)。

一两年前,我是那些将所有内容链接到 OpenLDAP 或 MySQL 的人之一,但随着时间的推移,我意识到与作为服务器的数据库的如此多的连接会产生我们通常无法承受的消耗,因此,完全使用可行的替代方案,例如在应用程序自己的文件中使用数据库,如 Pure-FTPd .pdb 的情况 

如有任何疑问或疑问,我会尽力提供帮助。

问候和……快乐黑客!


在 Google 中将其添加为首选来源