- 论坛徽章:
- 1
|
本帖最后由 sydt 于 2010-08-29 13:35 编辑
公司服务器管理员挺多,而又不想让别的管理员乱执行自己的脚本,于是通过给脚本加密码,来限制其他管理员使用。
十五分钟写出此脚本,用来一步生成可执行的加密脚本。
该脚本 首先通过gpg加密,讲密文再放到新脚本中,嵌套进解密流程。 并且自动清理加密解密时产生的临时文件等等
用法已经在脚本中有提示,直接运行可以看到用法。
兼容GNU/LINUX 采用bash解释器。 系统中需要有gnugpg包。一般发行版都自带的。
直接上代码:- #!/bin/bash
- #************************************************#
- # moracg #
- # written by ora... #
- # 08.26.2010 #
- # #
- # shell脚本加密 #
- #************************************************#
- clear
- unset CHECK
- echo -n "checking system env..."
- CHECK=`rpm -qa | grep gnupg`
- if [ -z "$CHECK" ]
- then
- echo -e "\t[\e[31m FAIL \e[0m]"
- echo -e "\t[Error:]Your system is not installed gnupg package."
- exit
- else
- echo -e "\t[\e[32m OK \e[0m]"
- fi
- if [ -n "$1" -a -e "$1" ]
- then
- echo "create encrypt shell script.."
- gpg -ca $1 2> /dev/null
- flag=$?
- else
- echo -e "\n\tUsage: $0 <filename>\n"
- exit
- fi
- if [ $flag -eq 0 -a -e "$1.asc" ]
- then
- rm -rf $1
- echo '#!/bin/bash' >$1.gpg
- cat <<EOF >> $1.gpg
- clear
- unset CHECK
- echo -n "checking system env..."
- CHECK=\`rpm -qa | grep gnupg\`
- if [ -z "\$CHECK" ]
- then
- echo -e "\t[\e[31m FAIL \e[0m]"
- echo -e "\t[Error:]Your system is not installed gnupg package."
- exit
- else
- echo -e "\t[\e[32m OK \e[0m]"
- fi
- gpg <<EOF 2>/dev/null >> .$1.gpg.sh
- `cat $1.asc`
- EOF
- echo "EOF" >> $1.gpg
- echo "chmod +x .$1.gpg.sh" >> $1.gpg
- echo "./.$1.gpg.sh" >> $1.gpg
- echo "rm -rf .$1.gpg.sh" >> $1.gpg
- else
- echo "create encrypt shell script error"
- fi
- rm -rf $1.asc
- chmod +x $1.gpg
复制代码 附件为本脚本,由于不能传.sh的文件,打包了
shellencrypt.zip
(694 Bytes, 下载次数: 57)
直接运行脚本会给出 使用方法 |
|