pure-ftpd软件安装配置过程

pure-ftpd软件安装配置过程:
(一) 软件安装
1. 解压缩
将pure-ftpd-1.0.20.tar.gz传到/tmp/file_install/目录下
mkdir /tmp/file_install
cd /tmp/file_install
gzip -d pure-ftpd-1.0.20.tar.gz
tar -xvf pure-ftpd-1.0.20.tar
2. 配置选项
cd /tmp/file_install/pure-ftpd-1.0.20
./configure --with-puredb --with-altlog --with-ratios --with-ftpwho --with-largefile --with-virtualhosts -with-virtualchroot --with-quotas --with-sysquotas --with-diraliases --with-cookie --with-shadow --prefix=/usr/local/pureftpd
或者
./configure --with-everything --prefix=/usr/local/pureftpd
./configure --with-everything --with-largefile --prefix=/usr/local/pureftpd (支持2GB以上的大文件)
3. 编译、安装
make install
make install-strip

(二) 配置
1. 修改root的~/.profile文件
增加
PATH=$PATH:/usr/local/pureftpd/bin:/usr/local/pureftpd/sbin
MANPATH=$MANPATH:/usr/local/pureftpd/man
2. 准备所需的文件及目录
(1) 将修改好的配置文件pure-ftpd.conf拷贝到/usr/local/pureftpd/etc/目录下
mkdir -p /usr/local/pureftpd/etc/
cp -p /tmp/file_install/pure-ftpd.conf /usr/local/pureftpd/etc/
(2) 将编辑好的启/停脚本pure-ftpd.sh拷贝到/usr/local/pureftpd/bin/目录下,并加可执行属性
[chmod u+x /tmp/file_install/pure-ftpd.sh]
cp -p /tmp/file_install/pure-ftpd.sh /usr/local/pureftpd/bin/
(3) 将编辑好的开机自动启动脚本pure_ftpd拷贝到/sbin/init.d/目录下,并修改属性,做链接
[chmod 555 /tmp/file_install/pure_ftpd]
[chown bin:bin /tmp/file_install/pure_ftpd]
cp -p /tmp/file_install/pure_ftpd /sbin/init.d/
ln -s /sbin/init.d/pure_ftpd /sbin/rc3.d/S900pure_ftpd
ln -s /sbin/init.d/pure_ftpd /sbin/rc2.d/K100pure_ftpd
(4) 将编辑好的开机自动启动配置文件pure_ftpd_conf拷贝到/etc/rc.config.d/目录下
cp -p /tmp/file_install/pure_ftpd_conf /etc/rc.config.d/
(5) 将pure-ftpd附带的启动脚本pure-config.pl拷贝到/usr/local/pureftpd/bin/目录下,并增加可执行的属性
cp -p /tmp/file_install/pure-ftpd-1.0.20/configuration-file/pure-config.pl /usr/local/pureftpd/bin/
chmod u+x /usr/local/pureftpd/bin/pure-config.pl
(6) 建立pure-ftp的log目录
mkdir /var/log
(参见附件pure-ftpd.conf、pure-ftpd.sh、pure_ftpd、pure_ftpd_conf)
3. 增加系统用户组
groupadd -g 3204 datap
4. 增加系统用户
useradd -u 3210 -g datap -d /home/dataproc -s /usr/bin/ksh dataproc
5. 查看用户ID和组ID
cat /etc/passwd|grep dataproc
6. 增加pure-ftp用户
/usr/local/pureftpd/bin/pure-pw useradd sateusr -f /usr/local/pureftpd/etc/pureftpd.ps -u dataproc -g datap -d /space/sat_recv/upload/sateusr -y 0

venus1用户:
/usr/local/pureftpd/bin/pure-pw useradd sateusr -f /usr/local/pureftpd/etc/pureftpd.ps -u dataproc -g datap -d /space/sat_temp -y 0
mercury2用户:
/usr/local/pureftpd/bin/pure-pw useradd ftpnrdb -f /usr/local/pureftpd/etc/pureftpd.ps -u nrdb -g sybase_op -d /user

s/sybapp/nrdb/mioswork/rdb -y 0
/usr/local/pureftpd/bin/pure-pw useradd nrdb -f /usr/local/pureftpd/etc/pureftpd.ps -u nrdb -g sybase_op -y 0
/usr/local/pureftpd/bin/pure-pw mkdb /usr/local/pureftpd/etc/pureftpd.pdb -f /usr/local/pureftpd/etc/pureftpd.ps
7. 停止HP-UX自带的ftp服务
vi /etc/inetd.conf,注释掉“ftp stream tcp nowait root /usr/lbin/ftpd ftpd -l”
刷新inetd,inetd -c
8. 启动pure-ftp服务器
/usr/local/pureftpd/sbin/pure-ftpd.sh start

/sbin/init.d/pure_ftpd start

/usr/local/pureftpd/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf



附录:
1. /sbin/init.d/pure_ftpd的内容
#!/sbin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/local/pureftpd/sbin:/usr/local/pureftpd/bin:$PATH
export PATH
rval=0
set_return() {
x=$?
if [ $x -ne 0 ]; then
echo "EXIT CODE: $x"
rval=1 # script FAILed
fi
}
if [ -f /etc/rc.config.d/pure_ftpd_conf ]; then
. /etc/rc.config.d/pure_ftpd_conf
else
echo "WARNING: /etc/rc.config.d/pure_ftpd config file is missing."
fi
case $1 in
'start_msg')
echo "Starting the pure-ftpd subsystem"
;;
'stop_msg')
echo "Stoping the pure-ftpd subsystem"
;;
'start')
if [ "$PUREFTPD" != 1 ]; then
rval=2
else
/usr/local/pureftpd/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf > /dev/null 2>&1
set_return
fi
;;
'stop')
if [ "$PUREFTPD" != 1 ]; then
rval=2
else
/usr/bin/kill $(cat /var/run/pure-ftpd.pid) > /dev/null 2>&1
set_return
fi
;;
esac

2. /etc/rc.config.d/pure_ftpd_conf的内容
PUREFTPD=1

3. /usr/local/pureftpd/bin/pure-ftpd.sh的内容
#!/sbin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/usr/local/pureftpd/sbin:/usr/local/pureftpd/bin
export PATH
kill_pure_ftpd()
{
if ps -ef | grep -v grep | grep -q "/usr/local/pureftpd/sbin/pure-ftpd"
then
for pid in $(ps -ef | grep -v grep | grep "/usr/local/pureftpd/sbin/pure-ftpd" | cut -c10-14)
do
if ps -ef | cut -c10-14|grep -q "$pid"
then
kill -9 $pid
fi
done
fi
}
case $1 in
'start')
if [ -f /var/run/pure-ftpd.pid ]; then
kill_pure_ftpd
sleep 1
fi
if [ -f /usr/local/pureftpd/etc/pure-ftpd.conf ]; then
/usr/local/pureftpd/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf > /dev/null 2>&1
echo "pure-ftpd Begin!"
fi
;;

'stop')
kill_pure_ftpd
# echo "pure-ftpd Stop!" > /dev/null 2>&1
echo "pure-ftpd Stop!"
;;

*)
echo ""
echo "Usage: `basename $0` { start | stop }"
echo ""
exit 64
;;

esac

4. pure-ftpd的一些局限
(1) 如果打开UnixAuthentication(yes),则与系统用户同名的ftp帐号的口令优先。
(2) 不支持HP的shadow password。(修改configure文件后已经支持了)
(3) ftp虚拟用户不支持uid或g

id为0的用户。
如果为了HP OVO分发Agent或模版,需要临时打开UnixAuthentication(yes)功能,在安装了shadow password的系统上的操作步骤:
1) 编辑/usr/local/pureftpd/etc/pure-ftpd.conf,从配置文件中将系统用户认证打开。
vi /usr/local/pureftpd/etc/pure-ftpd.conf
将UnixAuthentication yes前的注释“#”去掉
2) 将口令的shadow暂时去掉。
pwunconv
3) 重启pure-ftpd进程。
/usr/local/pureftpd/bin/pure-ftpd.sh start
4) 用HP OVO分发Agent或模版。
5) 编辑/usr/local/pureftpd/etc/pure-ftpd.conf,从配置文件中将系统用户认证关闭。
vi /usr/local/pureftpd/etc/pure-ftpd.conf
将UnixAuthentication yes前的注释“#”加上
6) 恢复口令的shadow。
pwconv
7) 重启pure-ftpd进程。
/usr/local/pureftpd/bin/pure-ftpd.sh start

5. 快速安装
cd /usr/local
tar -xvf /home/admin/patchs/pure-ftpd/_pureftpd_saturn.tar
cp -p /usr/local/pureftpd/conf_bak/sbin/init.d/pure_ftpd /sbin/init.d/
ln -s /sbin/init.d/pure_ftpd /sbin/rc3.d/S900pure_ftpd
ln -s /sbin/init.d/pure_ftpd /sbin/rc2.d/K100pure_ftpd
cp -p /usr/local/pureftpd/conf_bak/etc/rc.config.d/pure_ftpd_conf /etc/rc.config.d/

vi /.profile
PATH=$PATH:/usr/local/pureftpd/bin:/usr/local/pureftpd/sbin
MANPATH=$MANPATH:/usr/local/pureftpd/man
vi /etc/inetd.conf
#ftp stream tcp nowait root /usr/lbin/ftpd ftpd -l
inetd -c

相关文档
最新文档