pure-ftp的安装和配置

访问官网

Pure-FTPd :: Pure-FTPd

配置环境

0. 设置变量(仅供脚本临时使用)

APP_DIR=/apps
PREFIX_DIR=/apps/Prefix
SOURCECODE_DIR=/apps/SourceCode
APP=pure-ftpd-1.0.49

1. 安装 libsodium (pure-ftp虚拟用户功能需要)

出于考虑效率,文章不做解太多,这一步只留下命令,命令的含义懂得都懂

#设置变量
APP_DIR=/apps
PREFIX_DIR=/apps/Prefix
SOURCECODE_DIR=/apps/SourceCode
LIBSODIUM=libsodium-1.0.18

#开始安装
cd $SOURCECODE_DIR
wget https://download.libsodium.org/libsodium/releases/$LIBSODIUM.tar.gz
tar zxvf $LIBSODIUM.tar.gz
cd $LIBSODIUM
./configure
make -j4 
make install -j4

#至此,libsodium安装完毕,理论上来说,这样子装了之后,libsodium.so的位置应该是在/usr/local/lib/
#设置环境变量,让程序找到这个库
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

安装 pure-ftp

环境清单:

条目描述变量名
操作系统CentOS 7 64位
链接路径/appsAPP_DIR
安装路径/apps/PrefixPREFIX_DIR
源码放置路径/apps/SourceCodeSOURCECODE_DIR
包名称pure-ftpd-1.0.49APP

0. 脚本

直接复制粘贴即可(若使用和环境清单一样的配置)

全新安装

APP_DIR=/apps
PREFIX_DIR=/apps/Prefix
SOURCECODE_DIR=/apps/SourceCode
APP=pure-ftpd-1.0.49

cd $SOURCECODE_DIR
#wget https://download.pureftpd.org/pub/pure-ftpd/releases/$APP.tar.gz
tar zxvf $APP.tar.gz
cd $APP
./configure --prefix=$PREFIX_DIR/$APP --with-puredb --with-virtualchroot --with-everything
make -j4
make install 
ln -s $PREFIX_DIR/$APP $APP_DIR/
mv $APP_DIR/$APP $APP_DIR/pure-ftp
#export PATH=$APP_DIR/pure-ftp/bin:$PATH
#export PATH=$APP_DIR/pure-ftp/sbin:$PATH

重新编译

APP_DIR=/apps
PREFIX_DIR=/apps/Prefix
SOURCECODE_DIR=/apps/SourceCode
APP=pure-ftpd-1.0.49

cd $SOURCECODE_DIR
#tar zxvf $APP.tar.gz
cd $APP
./configure --prefix=$PREFIX_DIR/$APP --with-puredb --with-virtualchroot --with-everything
make -j4
make install -j4
#ln -s $PREFIX_DIR/$APP $APP_DIR/
#mv $APP_DIR/$APP $APP_DIR/pure-ftp
#export PATH=$APP_DIR/pure-ftp/bin:$PATH
#export PATH=$APP_DIR/pure-ftp/sbin:$PATH

清理

APP_DIR=/apps
PREFIX_DIR=/apps/Prefix
SOURCECODE_DIR=/apps/SourceCode
APP=pure-ftpd-1.0.49

cd ~
rm -f $APP_DIR/pure-ftp
rm -fr $PREFIX_DIR/$APP

自动配置

会添加下列内容:

  • 系统用户:

    • www
  • ftp用户:(user,password,dir)

    • apps,apps,/apps
  • 目录:(dir)

    • /apps
#设置变量
APP_DIR=/apps
PREFIX_DIR=/apps/Prefix
SOURCECODE_DIR=/apps/SourceCode
LIBSODIUM=libsodium-1.0.18

mkdir $APP_DIR
mkdir $PREFIX_DIR
mkdir $SOURCECODE_DIR


firewall-cmd  --set-default-zone=public
firewall-cmd  --zone=public --add-port=20/tcp --permanent
firewall-cmd  --zone=public --add-port=21/tcp --permanent
firewall-cmd  --zone=public --add-port=22/tcp --permanent
firewall-cmd  --zone=public --add-port=23/tcp --permanent
firewall-cmd  --zone=public --add-port=25/tcp --permanent
firewall-cmd  --zone=public --add-port=80/tcp --permanent
firewall-cmd  --reload

#开始安装
cd $SOURCECODE_DIR
wget https://download.libsodium.org/libsodium/releases/$LIBSODIUM.tar.gz
tar zxvf $LIBSODIUM.tar.gz
cd $LIBSODIUM
./configure
make -j4 
make install -j4
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH


APP=pure-ftpd-1.0.49

cd $SOURCECODE_DIR
wget https://download.pureftpd.org/pub/pure-ftpd/releases/$APP.tar.gz
tar zxvf $APP.tar.gz
cd $APP
./configure --prefix=$PREFIX_DIR/$APP --with-puredb --with-virtualchroot --with-everything
make -j4
make install 
ln -s $PREFIX_DIR/$APP $APP_DIR/
mv $APP_DIR/$APP $APP_DIR/pure-ftp
PW=$APP_DIR/pure-ftp/bin/pure-pw
FTPD=$APP_DIR/pure-ftp/sbin/pure-ftpd
groupadd www
useradd www -g www
echo please input www password
passwd www
echo please input apps password
$PW useradd apps -u www -d /apps
$PW mkdb
vim $APP_DIR/pure-ftp/etc/pure-ftpd.conf
$FTPD $APP_DIR/pure-ftp/etc/pure-ftpd.conf

usermod -a -G root www
chmod 775 -R /apps

1. 获取源码

https://download.pureftpd.org/pub/pure-ftpd/releases/

在列表里找要下载的版本

本文示例演示 1.0.49 安装

源码包

2. 让源码包躺在那里,

方式随意,

最终让源码包放在预设的源码放置路径下,

例:

cd $SOURCECODE_DIR
wget https://download.pureftpd.org/pub/pure-ftpd/releases/$APP.tar.gz

3. 开始编译

理论流程:

  1. 进入源码包所在目录
  2. 解包
  3. 进入源码目录
  4. ./configure

    1. 因为在之后有虚拟用户需求,在这一步要加上--with-puredb --with-virtualchroot
  5. make && make install
  6. 把可执行文件加入环境变量(脚本中略过这一步,请自己配置)
cd $SOURCECODE_DIR
tar zxvf $APP.tar.gz
cd $APP
./configure --prefix=$PREFIX_DIR/$APP --with-puredb
make
make install
ln -s $PREFIX_DIR/$APP $APP_DIR/
mv $APP_DIR/$APP $APP_DIR/pure-ftp
#export PATH=$APP_DIR/pure-ftp/bin:$PATH
#export PATH=$APP_DIR/pure-ftp/sbin:$PATH

4. 配置pure-ftp相关环境变量及配置文件

需要做的改动:

  1. 把pure-ftp的binsbin两个可执行文件目录放进PATH
  2. 要启用虚拟目录,找到$APP_DIR/pure-ftp/etc/pure-ftpd.conf,在第125行把PureDB /etc/pureftpd.pdb前的#注释去掉
  3. 设置环境变量,prue-ftp需要PURE_PASSWDFILEPURE_DBFILE(用默认的也可以,不过既然是自定义安装,还是把这俩安排上)

关于环境变量,我的做法是在/etc/profile中加上几行:

#指定目录
export APP_DIR=/apps

#设置PATH
export PATH=\
$APP_DIR/pure-ftp/bin:\
$APP_DIR/pure-ftp/sbin:\
$PATH
#设置pure-ftp
#下面那两个文件要在之后的创建了虚拟用户步骤之后才会有,不过不影响,现在先把变量加上
export PURE_PASSWDFILE=$APP_DIR/pure-ftp/etc/pureftpd.passwd
export PURE_DBFILE=$APP_DIR/pure-ftp/etc/pureftpd.pdb

使用pure-ftp

假设已经有了一个资源目录/2333

在启动之前

打开端口

打开20,21号端口

//TODO: 打开端口的相关命令

或者直接关掉防火墙

//TODO: 先去百度去

创建ftp专用的 系统用户 (这一步可以不需要,可以使用现有用户)

首先创建一个系统用户,提供登陆身份及权限等,

useradd 2333 -d /etc/nologin

可以不用登陆,这个账户只是提供一个身份

假设在这之后使用了下面的命令

chown 2333:2333 -R /2333

使资源目录为用户2333所有

得到一个用户2333,并将目录/2333的权限给用户2333

创建ftp登陆使用的 虚拟用户

pure-pw useradd ftpuser -u 2333 -d /2333

-u 2333的意思是让虚拟用户ftpuser使用用户2333的权限,

-d /2333就是指定虚拟用户ftpuser的主目录为/2333,这个目录会作为ftpuser的ftp根目录

在这条命令后它会要求你输入密码,

假设输入了两次password

然后使这个添加用户的更改生效:

pure-pw mkdb

得到一个供ftp使用的用户ftpuser,它使用系统用户2333的权限,他的ftp主目录在/2333

在启动ftp后,登陆时,要使用ftpuser而不是2333,它的密码是password,

启用启用虚拟用户登录功能(好像是这个说法?)

编辑$APP_DIR/pure-ftp/etc/pure-ftpd.conf

应该是在第125行的位置,

#PureDB /apps/pure-ftp/etc/pureftpd.pdb前的#这个注释符号去掉,

之后就可以开始启动了

启动

pure-ftpd $APP_DIR/pure-ftp/etc/pure-ftpd.conf
最后修改:2025 年 03 月 11 日
如果觉得我的文章对你有用,请随意赞赏