分类
日记 笔记

对账FTP的建设

环境:redhat 5.6 企业版、proftpd

需求:我们采用FTP形式提供给商户对账文件,商户自行使用FTP账号密码登录获取对账文件。我们系统对FTP需要有读写权限,而商户只能有读取权限。

分析:首先需要建立规则模版化。目前我们提供给商户FTP的账号统一使用商户号,默认密码为商户号后6位。而我们平台针对每个商户的FTP存放对账文件,FTP登录名以h为前缀加上商户号后5位,密码为统一密码。

即然规则统一确定,那么应该写成shell脚本以便日后重复利用。proftpd使用的是linux系统账号,所以每增加一个FTP账户需要增加一个系统账号。但是为安全起见,该账号是不能使用ssh登录的,所以在建立用户时需要指定bash为nologin。所有建立的用户都应该属于FTP组,提供给商户的用户home目录与我们平台使用的FTP账户目录共享,并设置权限为750(目录所属者可读写,目录所属组可读,其他用户不可访问)。以下是我的shell脚本:

#!/bin/sh
# FTP组ID
ftp_group_id=50;
# 只读权限FTP用户名
ftpusername=$1;
len=`expr length $ftpusername`;
if [ $len -lt 6 ]; then
    echo "用户名不符合长度规则";
    exit 0;
fi
# 取用户名后6位字符
ftppassword=`openssl passwd -salt $ftpusername ${ftpusername:0-6}`;
# FTP管理用户
hytusername="h"${ftpusername:0-5};
# 使用固定密码
hytpassword=`openssl passwd -salt $hytusername platformpwd`;
useradd -s /sbin/nologin -g $ftp_group_id -p $hytpassword $hytusername;
ftphome="/home/"$hytusername;
chmod 750 -R $ftphome;
# FTP访问用户只能读取
useradd -d $ftphome -s /sbin/nologin -g $ftp_group_id -p $ftppassword $ftpusername;

保存在/usr/local/bin目录下,命名为ftpuseradd.sh。
使用方法:ftpuseradd 商户号

发表评论

电子邮件地址不会被公开。