释放双眼,带上耳机,听听看~!
一、背景介绍
DBA日常更新insert|update较多,耽误很多时间。开发出工具虽然对脚本内用户密码进行了加密加严操作,但是仔细查询内部逻辑还是可能泄露密码的,今天用gzexe方式对shell脚本加密。
二、开始测试
1
2 11.找一个测试脚本执行。(线上脚本内容不便公布,自行编写测试脚本。)
2
1
2
3
4
5
6
7 12.进行加密操作
2[root@]#gzexe Automatic_update.sh
3Automatic_update.sh: 63.0%
4[root@]#ls
5Automatic_update.sh Automatic_update.sh~ bak conf SelectDBname.sh sh_lib
6
7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 13.加密后的脚本内容
2[root@ ]#cat Automatic_update.sh
3#!/bin/sh
4skip=44
5
6tab=' '
7nl='
8'
9IFS=" $tab$nl"
10
11umask=`umask`
12umask 77
13
14gztmpdir=
15trap 'res=$?
16 test -n "$gztmpdir" && rm -fr "$gztmpdir"
17 (exit $res); exit $res
18' 0 1 2 3 5 10 13 15
19
20if type mktemp >/dev/null 2>&1; then
21 gztmpdir=`mktemp -dt`
22else
23 gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir
24fi || { (exit 127); exit 127; }
25
26gztmp=$gztmpdir/$0
27case $0 in
28-* | */*'
29') mkdir -p "$gztmp" && rm -r "$gztmp";;
30*/*) gztmp=$gztmpdir/`basename "$0"`;;
31esac || { (exit 127); exit 127; }
32
33case `echo X | tail -n +1 2>/dev/null` in
34X) tail_n=-n;;
35*) tail_n=;;
36esac
37if tail $tail_n +$skip <"$0" | gzip -cd > "$gztmp"; then
38 umask $umask
39 chmod 700 "$gztmp"
40 (sleep 5; rm -fr "$gztmpdir") 2>/dev/null &
41 "$gztmp" ${1+"$@"}; res=$?
42else
43 echo >&2 "Cannot decompress $0"
44 (exit 127); res=127
45fi; exit $res ~1±Automatic_update.shԖ[O~߽ScRem¯
46ֻm҈RڄRZ5R!Q£^͟)»§?Lܔj#YZϙ?fN֫ɂ¬%
47~??ؼµ#®ƚ®n¸ګ髜{n�ꬬSu?¶q??ᐻ¿׆IJ!ȖUVĉǐ$¬2¨«l´d]>b٢£6?¼ݳh±¬G ?¹9©+De"NCUwL0±mDz±r2ª
48 ?
49읾鞝?ˢ¦]
50<\¼]&Z#¦-Q%E-d配P05Ϥ¸毼1:쮟<ݼ�¼®̻�°p·þ̮鱐³½5x¼¬k4G-3Ƨ²w??m={)5ƲWٮuaª⡜xp
51±vņr#¹\
52 Ϻ$$½5Gtڱ@
53#?¶˗惸??eَS䛢¤£e¨v³¤▯G%=PD?¡?Gz:Q¥誎?þ(¼ғǂ>>ȵ%̐5LNQ¦E٨✒EޑlZ?HJOV¤T ªO*r!)陑.QbȚ5畒Z%!K1©TʓR| _R!e
54߫알®?N%\¹7a=¹y XБ v*;ן²ʨKeª·k¤5²ـK§*،¿2#?텗%3%
55 ª(§e5avº¯¦¬¡¿ٝs4¹5R2
56 ݝº\?
57tі=g轺gL8ÿ¢ɾ?岙X? Zºc?¦7
58 ¥A?ٔ듊?ҵ[m?ޢ?<?¿Dz~®YFL\T¥>ʑɷ?¾2
59
60 @,?
61 ?S(Ywﺙ??I?½/y̛º£
62??ȴ Ύ]>©¦/?ɷfrþ
63 Ǡڃ ¯ۂHBVZHϛˡ?¦īoC(
64²";£(mҳƷ*ğ쑿
65ǽþ?l0?½똸윴¡½9˵¯B?¡? Dφ
66 ߪ»?ÿy³¾岨Chιٿ¡o¾
67
68
1
2
3 14.再次执行内容不变,并确认加参数一样可以执行。
2
3
1
2
3
4
5 15.进行解密
2gzexe -d Automatic_update.sh
3查看确认脚本内容无误
4
5
1
2
3
4 16.再次执行确认,发现完全没问题。
2#另外一种shell加密方式shc,自行研究。
3
4