免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4034 | 回复: 8
打印 上一主题 下一主题

【原创】通过gpg给脚本加密码 很实用 [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:57:09
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-26 15:27 |只看该作者 |倒序浏览
本帖最后由 sydt 于 2010-08-29 13:35 编辑

公司服务器管理员挺多,而又不想让别的管理员乱执行自己的脚本,于是通过给脚本加密码,来限制其他管理员使用。

十五分钟写出此脚本,用来一步生成可执行的加密脚本。

该脚本 首先通过gpg加密,讲密文再放到新脚本中,嵌套进解密流程。   并且自动清理加密解密时产生的临时文件等等
用法已经在脚本中有提示,直接运行可以看到用法。
兼容GNU/LINUX 采用bash解释器。  系统中需要有gnugpg包。一般发行版都自带的。

直接上代码:
  1. #!/bin/bash
  2. #************************************************#
  3. #                   moracg                       #
  4. #           written by ora...                    #
  5. #                08.26.2010                      #
  6. #                                                #
  7. #                   shell脚本加密                #
  8. #************************************************#
  9. clear
  10. unset CHECK
  11. echo  -n "checking system env..."
  12. CHECK=`rpm -qa | grep gnupg`
  13. if [ -z "$CHECK" ]
  14. then
  15.         echo -e "\t[\e[31m FAIL \e[0m]"
  16.         echo -e "\t[Error:]Your system is not installed gnupg package."
  17.         exit
  18. else
  19.         echo -e "\t[\e[32m OK \e[0m]"
  20. fi
  21. if [ -n "$1" -a -e "$1" ]
  22. then
  23.         echo "create encrypt shell script.."
  24.         gpg -ca $1 2> /dev/null
  25.         flag=$?
  26. else
  27.         echo -e "\n\tUsage:  $0 <filename>\n"
  28.         exit
  29. fi
  30. if [ $flag -eq 0 -a -e "$1.asc" ]
  31. then
  32.         rm -rf $1
  33.         echo '#!/bin/bash' >$1.gpg
  34.         cat <<EOF >> $1.gpg
  35. clear
  36. unset CHECK
  37. echo -n "checking system env..."
  38. CHECK=\`rpm -qa | grep gnupg\`
  39. if [ -z "\$CHECK" ]
  40. then
  41.         echo -e "\t[\e[31m FAIL \e[0m]"
  42.         echo -e "\t[Error:]Your system is not installed gnupg package."
  43.         exit
  44. else
  45.         echo -e "\t[\e[32m OK \e[0m]"
  46. fi
  47. gpg <<EOF 2>/dev/null >> .$1.gpg.sh
  48. `cat $1.asc`
  49. EOF
  50. echo "EOF" >> $1.gpg
  51. echo "chmod +x .$1.gpg.sh" >> $1.gpg
  52. echo "./.$1.gpg.sh" >> $1.gpg
  53. echo "rm -rf .$1.gpg.sh" >> $1.gpg
  54. else
  55.         echo "create encrypt shell script error"
  56. fi
  57. rm -rf $1.asc
  58. chmod +x $1.gpg
复制代码
附件为本脚本,由于不能传.sh的文件,打包了
shellencrypt.zip (694 Bytes, 下载次数: 57)
直接运行脚本会给出  使用方法

论坛徽章:
0
2 [报告]
发表于 2010-08-26 15:28 |只看该作者
学习~

论坛徽章:
0
3 [报告]
发表于 2010-08-26 15:34 |只看该作者
有没有办法解密?

论坛徽章:
0
4 [报告]
发表于 2010-08-26 16:26 |只看该作者
对称加密,需要私匙。

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:57:09
5 [报告]
发表于 2010-08-26 16:37 |只看该作者
回复 4# 只爱睡觉


    这种加密只需要密码,不是采用公钥和私钥来加密和解密的,只是利用gpg的单文件加密方法。

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:57:09
6 [报告]
发表于 2010-08-26 16:38 |只看该作者
回复 3# linuxboy823


    只有知道密码的才可以,这个是借用gpg的单文件加密实现的,没多大技术含量,嘿嘿。  这个大可自己拿到linux下试验一下,就知道我要实现的是什么效果。  本人语言表达能力有限,嘿嘿,谢谢关注

论坛徽章:
0
7 [报告]
发表于 2010-08-26 16:46 |只看该作者
我下下来试试看

论坛徽章:
1
射手座
日期:2014-03-10 14:24:52
8 [报告]
发表于 2010-08-26 17:18 |只看该作者
学习!~~
很好奇的说

论坛徽章:
0
9 [报告]
发表于 2010-08-26 17:29 |只看该作者
打酱油的路过,看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP