对文件的GPG2的处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对文件的GPG2的处理相关的知识,希望对你有一定的参考价值。

背景是 A和B公司之间通过gpg2加密文件并交互

A公司能访问UPDIR、DOWNDIR目录下的文件、A公司使用B公司的gpg2公钥加密之后的文件放到UPDIR目录下,通过以下脚本处理之后文件放到OUTDIR目录之下供B公司拿到解密文件

B公司能访问OUTDIR、RETURNDIR目录下的文件,反之亦然。


#!/bin/bash
Company=sftp-test
Program=test-sftp
dateymd=$(date  +%Y%m%d)
#A服务器的公钥
GPGUSERID=
#B服务器的私钥
GPGPASSPHRASE=
#
UPDIR=/sftp/$Company/$Program/upfile/$dateymd
OUTDIR=/sftp/$Company/$Program/outfile/$dateymd
RETURNDIR=/sftp/$Company/$Program/returnfile/$dateymd
DOWNDIR=/sftp/$Company/$Program/downfile/$dateymd
#创建目录
for i in {upfile,outfile,returnfile,downfile};do
    if [ -d /sftp/$Company/$Program/$i/$dateymd ];then
        continue
    else
        mkdir -p /sftp/$Company/$Program/$i/$dateymd
        directory=/sftp/$Company/$Program/$i
        if [ $i == "upfile" -o $i == "downfile" ];then
            chown -R $Company\_$Program:sftpusers $directory
        else
      chown -R wps_$Company\_$Program:sftpusers $directory
    fi
  fi
done
#对文件加解密处理函数
#settle函数参数 $1-表示对文件加解密以及复制  $2-被处理的文件 $3-处理之后的文件
settle(){
    case $1 in
	decode)
	    gpg2 -d --batch --passphrase $GPGPASSPHRASE -o $3  $2 && mv $2 ${2}.bak;;
	encryption)
	    gpg2 -e -r $GPGUSERID -o $3  $2 && mv $2 ${2}.bak;;
	copy)
	    cp -r $2  $3 && mv $2 ${2}.bak;;
	*)
	    echo -e "\033[5m\033[31mFiles are encrypted, decrypted, or just copie! \033[0m";;
	esac
}
#判断文件的完整并处理
#dispose函数参数 $1-表示对文件做什么处理  $2-被处理文件目录 $3-处理之后所放文件目录
dispose(){
    FileName=`find $2 ! -regex  ".*\.bak$" -and -type f  -exec basename {} \;`
    for FILE in ${FileName}; do
        TEMPNAME=`basename $FILE`
        MDFILE1=`md5sum $2/$TEMPNAME|cut -c1-32`
        sleep 3
        MDFILE2=`md5sum $2/$TEMPNAME|cut -c1-32`
        if [  -n $MDFILE1 ] && [ $MDFILE1 = $MDFILE2 ];then
       settle  $1  $2/$TEMPNAME  $3/$TEMPNAME
        fi
    done
}

dispose decode $UPDIR $OUTDIR
#dispose copy $UPDIR $OUTDIR
dispose encryption $RETURNDIR $DOWNDIR
#dispose copy $RETURNDIR $DOWNDIR

chown -R $Company\_$Program:sftpusers $UPDIR $DOWNDIR
chown -R wps_$Company\_$Program:sftpusers $OUTDIR $RETURNDIR


本文出自 “Gavin” 博客,转载请与作者联系!

以上是关于对文件的GPG2的处理的主要内容,如果未能解决你的问题,请参考以下文章

markdown Ubuntu删除gpg2密钥

常用python日期日志获取内容循环的代码片段

python常用代码片段总结

是否有在单个活动中处理多个片段的 Android 设计模式?

如何有效地打开 30gb 的文件并处理其中的片段而不减慢速度?

Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段