验证包是否签名脚本说明:
首先,执行此脚本需给脚本添加可执行权限(chmod a+x checkDebSign),并且要知道执行脚本时所需参数(./checkDebSign *.deb)
脚本的执行流程:执行脚本时,会首先判断后接参数是否为 *.deb ;接下来脚本会创建个临时目录,并且在临时目录下解压deb包同时验证解压后的软件包是否完整;接下来遍历临时目录下的所有常规文件是否是ELF格式文件,然后通过查看这些ELF格式文件信息,是否同时匹配后缀带有 .deepin.cert和 .deepin.sig,若同时满足上述所有条件,则该deb包已经签名。
脚本代码:- #!/usr/bin/bash
- if [ $# != 1 ]
- then
- echo "错误 :参数必须为一个deb文件"
- exit 1
- fi
- TMP_dir=`mktemp -d`
- echo "mktemp $TMP_dir"
- dpkg-deb -vx $1 $TMP_dir
- if [ $? != 0 ]; then
- echo "extract deb file failed!"
- exit 1
- fi
- FILES=`find $TMP_dir -type f`
- for f in $FILES
- do
- if file $f | grep 'ELF'
- then
- if readelf -S $f | grep ".deepin.cert" && readelf -S $f | grep ".deepin.sig"
- then
- echo ""
- echo ""
- echo "该deb包已经签名"
- break
- else
- echo ""
- echo ""
- echo "没有在 $f 中找到签名段"
- echo ""
- echo ""
- fi
- fi
- done
- rm -rf $TMP_dir
复制代码
|
|
|
|
|
版权说明:论坛帖子主题均由合作第三方提供并上传,若内容存在侵权,请进行举报