pure-ftp的安装和配置
访问官网
Pure-FTPd :: Pure-FTPd
配置环境
0. 设置变量(仅供脚本临时使用)
1 2 3 4 APP_DIR=/apps PREFIX_DIR=/apps/Prefix SOURCECODE_DIR=/apps/SourceCode APP=pure-ftpd-1.0.49
1. 安装 libsodium (pure-ftp虚拟用户功能需要)
出于考虑效率,文章不做解太多,这一步只留下命令,命令的含义懂得都懂 ,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 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 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. 脚本
直接复制粘贴即可(若使用和环境清单一样的配置)
全新安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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 ln -s $PREFIX_DIR /$APP $APP_DIR /mv $APP_DIR /$APP $APP_DIR /pure-ftp
重新编译
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 APP_DIR=/apps PREFIX_DIR=/apps/Prefix SOURCECODE_DIR=/apps/SourceCode APP=pure-ftpd-1.0.49 cd $SOURCECODE_DIR cd $APP ./configure --prefix=$PREFIX_DIR /$APP --with-puredb --with-virtualchroot --with-everything make -j4 make install -j4
清理
1 2 3 4 5 6 7 8 9 APP_DIR=/apps PREFIX_DIR=/apps/Prefix SOURCECODE_DIR=/apps/SourceCode APP=pure-ftpd-1.0.49 cd ~rm -f $APP_DIR /pure-ftprm -fr $PREFIX_DIR /$APP
自动配置
会添加下列内容:
系统用户:
ftp用户:(user,password,dir)
目录:(dir)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 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-ftpPW=$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 passwordpasswd www echo please input apps password$PW useradd apps -u www -d /apps$PW mkdbvim $APP_DIR /pure-ftp/etc/pure-ftpd.conf $FTPD $APP_DIR /pure-ftp/etc/pure-ftpd.confusermod -a -G root www chmod 775 -R /apps
1. 获取源码
https://download.pureftpd.org/pub/pure-ftpd/releases/
在列表里找要下载的版本
本文示例演示 1.0.49 安装
源码包
2. 让源码包躺在那里,
方式随意,
最终让源码包放在预设的源码放置路径 下,
例:
1 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
把可执行文件加入环境变量(脚本中略过这一步,请自己配置)
1 2 3 4 5 6 7 8 9 10 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
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
中加上几行:
1 2 3 4 5 6 7 8 9 10 11 12 export APP_DIR=/appsexport PATH=\$APP_DIR /pure-ftp/bin:\$APP_DIR /pure-ftp/sbin:\$PATH export PURE_PASSWDFILE=$APP_DIR /pure-ftp/etc/pureftpd.passwdexport PURE_DBFILE=$APP_DIR /pure-ftp/etc/pureftpd.pdb
使用pure-ftp
假设已经有了一个资源目录/2333
在启动之前
打开端口
打开20 ,21 号端口
//TODO: 打开端口的相关命令
或者直接关掉防火墙
//TODO: 先去百度去
创建ftp专用的 系统用户 (这一步可以不需要,可以使用现有用户)
首先创建一个系统用户,提供登陆身份及权限等,
1 useradd 2333 -d /etc/nologin
可以不用登陆,这个账户只是提供一个身份
假设在这之后使用了下面的命令
1 chown 2333:2333 -R /2333
使资源目录为用户2333 所有
得到一个用户2333,并将目录/2333的权限给用户2333
创建ftp登陆使用的 虚拟用户
1 pure-pw useradd ftpuser -u 2333 -d /2333
-u 2333
的意思是让虚拟用户ftpuser使用用户2333的权限,
-d /2333
就是指定虚拟用户ftpuser的主目录为/2333,这个目录会作为ftpuser的ftp根目录
在这条命令后它会要求你输入密码,
假设输入了两次password
,
然后使这个添加用户的更改生效:
得到一个供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
前的#
这个注释符号去掉,
之后就可以开始启动了
启动
1 pure-ftpd $APP_DIR /pure-ftp/etc/pure-ftpd.conf