標籤:
gzexe 助shell指令碼加密 01
一、 簡介
很多時候我們的指令碼會涉及到一些私密的資訊,例如:使用者名稱,密碼,或者其它重要訊息的時候,我們使用一些加密的手段來屏蔽這些資訊,確保系統的安全已經指令碼的可流傳性,通常情況下我們只需要通過系統內建的gzexe這個工具就夠了。
二、 實驗測試開始:
2.1 編寫一個用於測試的指令碼[[email protected] ~]# vi woo.sh#! /bin/kshecho 'PrudentWoo'' '`date +%Y-%m-%d' '%T`uptime2.2 賦予可執行許可權,並執行[[email protected] ~]# chmod +x woo.sh[[email protected] ~]# ./woo.shPrudentWoo 2014-12-30 22:13:27 22:13:27 up 10 days, 23:03, 3 users, load average: 0.00, 0.01, 0.052.3 執行gzexe加密操作[[email protected] ~]# gzexe woo.shwoo.sh: 11.5%[[email protected] ~]# ll woo.s*-rwxr-xr-x 1 root root 888 Dec 30 22:15 woo.sh-rwxr-xr-x 1 root root 61 Dec 30 22:11 woo.sh~[[email protected] ~]#2.4 加密後的檔案內容[[email protected] ~]# strings woo.sh#!/bin/shskip=44tab=' 'nl='IFS=" $tab$nl"umask=`umask`umask 77gztmpdir=trap 'res=$? test -n "$gztmpdir" && rm -fr "$gztmpdir" (exit $res); exit $res' 0 1 2 3 5 10 13 15if type mktemp >/dev/null 2>&1; then gztmpdir=`mktemp -dt`else gztmpdir=/tmp/gztmp$$; mkdir $gztmpdirfi || { (exit 127); exit 127; }gztmp=$gztmpdir/$0case $0 in-* | */*'') mkdir -p "$gztmp" && rm -r "$gztmp";;*/*) gztmp=$gztmpdir/`basename "$0"`;;esac || { (exit 127); exit 127; }case `echo X | tail -n +1 2>/dev/null` inX) tail_n=-n;;*) tail_n=;;esacif tail $tail_n +$skip <"$0" | gzip -cd > "$gztmp"; then umask $umask chmod 700 "$gztmp" (sleep 5; rm -fr "$gztmpdir") 2>/dev/null & "$gztmp" ${1+"[email protected]"}; res=$?else echo >&2 "Cannot decompress $0" (exit 127); res=127fi; exit $reswoo.sh(*MIWWWPOHI,IU2.5 再次執行加密後的檔案,輸出結果一樣[[email protected] ~]# ./woo.shPrudentWoo 2014-12-30 22:17:22 22:17:22 up 10 days, 23:06, 3 users, load average: 0.00, 0.01, 0.05[[email protected] ~]#2.6 執行解密操作:[[email protected] ~]# gzexe -d woo.sh[[email protected] ~]# cat woo.sh#! /bin/kshecho 'PrudentWoo'' '`date +%Y-%m-%d' '%T`uptime[[email protected] ~]#2.7 再次執行確認,加密解密都是可行的:[[email protected] ~]# ./woo.shPrudentWoo 2014-12-30 22:19:50 22:19:50 up 10 days, 23:09, 3 users, load average: 0.00, 0.01, 0.05[[email protected] ~]#
gzexe 助shell指令碼加密 01