分享

UOS系统中验证包是否签名的脚本

lemon 2021-10-30 14:49:53 发表于 已解决 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 1566
验证包是否签名脚本说明:

首先,执行此脚本需给脚本添加可执行权限(chmod a+x checkDebSign),并且要知道执行脚本时所需参数(./checkDebSign *.deb)
脚本的执行流程:执行脚本时,会首先判断后接参数是否为 *.deb ;接下来脚本会创建个临时目录,并且在临时目录下解压deb包同时验证解压后的软件包是否完整;接下来遍历临时目录下的所有常规文件是否是ELF格式文件,然后通过查看这些ELF格式文件信息,是否同时匹配后缀带有 .deepin.cert和 .deepin.sig,若同时满足上述所有条件,则该deb包已经签名。

脚本代码:
  1. #!/usr/bin/bash

  2. if [ $# != 1 ]

  3. then

  4.          echo "错误 :参数必须为一个deb文件"

  5.          exit 1

  6. fi

  7. TMP_dir=`mktemp -d`

  8. echo "mktemp $TMP_dir"

  9. dpkg-deb -vx $1 $TMP_dir

  10. if [ $? != 0 ]; then

  11.          echo "extract deb file failed!"

  12.          exit 1

  13. fi

  14. FILES=`find $TMP_dir -type  f`

  15. for f in $FILES

  16. do

  17.          if file $f | grep 'ELF'

  18.          then

  19.                  if      readelf -S $f | grep ".deepin.cert" && readelf -S $f | grep ".deepin.sig"

  20.                  then

  21.                          echo ""

  22.                          echo ""

  23.                          echo "该deb包已经签名"

  24.                          break

  25.                  else

  26.                         echo ""

  27.                          echo ""

  28.                          echo "没有在 $f 中找到签名段"

  29.                          echo ""

  30.                          echo ""

  31.                  fi

  32. fi

  33. done

  34. rm -rf $TMP_dir
复制代码





版权说明:论坛帖子主题均由合作第三方提供并上传,若内容存在侵权,请进行举报

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系在线客服