pure-ftp的安装和配置
访问官网
配置环境
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位 | |
链接路径 | /apps | APP_DIR |
安装路径 | /apps/Prefix | PREFIX_DIR |
源码放置路径 | /apps/SourceCode | SOURCECODE_DIR |
包名称 | pure-ftpd-1.0.49 | APP |
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. 开始编译
理论流程:
- 进入源码包所在目录
- 解包
- 进入源码目录
./configure
- 因为在之后有虚拟用户需求,在这一步要加上
--with-puredb --with-virtualchroot
- 因为在之后有虚拟用户需求,在这一步要加上
make && make install
- 把可执行文件加入环境变量(脚本中略过这一步,请自己配置)
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相关环境变量及配置文件
需要做的改动:
- 把pure-ftp的
bin
和sbin
两个可执行文件目录放进PATH
- 要启用虚拟目录,找到
$APP_DIR/pure-ftp/etc/pure-ftpd.conf
,在第125行把PureDB /etc/pureftpd.pdb
前的#
注释去掉 - 设置环境变量,prue-ftp需要
PURE_PASSWDFILE
和PURE_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