pure ftp

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

#至此,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. 脚本

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

全新安装

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
#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

重新编译

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
#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

清理

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-ftp
rm -fr $PREFIX_DIR/$APP

自动配置

会添加下列内容:

  • 系统用户:
    • www
  • ftp用户:(user,password,dir)
    • apps,apps,/apps
  • 目录:(dir)
    • /apps
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-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. 让源码包躺在那里,

方式随意,

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

例:

1
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. 把可执行文件加入环境变量(脚本中略过这一步,请自己配置)
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
#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中加上几行:

1
2
3
4
5
6
7
8
9
10
11
12
#指定目录
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专用的 系统用户 (这一步可以不需要,可以使用现有用户)

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

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

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

1
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前的#这个注释符号去掉,

之后就可以开始启动了

启动

1
pure-ftpd $APP_DIR/pure-ftp/etc/pure-ftpd.conf
发布于

2021-06-29

更新于

2024-08-07

许可协议

评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...