很多时候,我们的脚本中涉及的用户名/密码/ip等敏感信息,我们需要使用一些加密方面来屏蔽这些信息,确保我们的系统安全(主要防菜鸟),虽然shc可以实现强大的加密功能,但是他需要另外安装shc软件,比较麻烦,应对一般的加密,个人推荐直接喜用系统自带的gzexe(大部分Linux,unix都有)
[root@db2 home]# cat test.sh
#!/bin/sh
echo "Hello World!"
[root@db2 home]# gzexe test.sh
test.sh: 20.0%
现在的话test.sh里面就加密了。
[root@db2 home]# strings test.sh
#!/bin/sh
skip=44
tab=' '
nl='
IFS=" $tab$nl"
umask=`umask`
umask 77
gztmpdir=
trap 'res=$?
test -n "$gztmpdir" && rm -fr "$gztmpdir"
(exit $res); exit $res
' 0 1 2 3 5 10 13 15
if type mktemp >/dev/null 2>&1; then
gztmpdir=`mktemp -dt`
else
gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir
fi || { (exit 127); exit 127; }
gztmp=$gztmpdir/$0
case $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` in
X) tail_n=-n;;
*) tail_n=;;
esac
if tail $tail_n +$skip <"$0" | gzip -cd > "$gztmp"; then
umask $umask
chmod 700 "$gztmp"
(sleep 5; rm -fr "$gztmpdir") 2>/dev/null &
"$gztmp" ${1+"$@"}; res=$?
else
echo >&2 "Cannot decompress $0"
(exit 127); res=127
fi; exit $res
test.sh
[root@db2 home]# ls
test.sh test.sh~
tesh.sh~里面存放了原来的脚本信息
[root@db2 home]# cat test.sh~
#!/bin/sh
echo "Hello World!"
用gzexe -d test.sh可以还原test.sh里面的信息
[root@db2 home]# gzexe -d test.sh
[root@db2 home]# cat test.sh
#!/bin/sh
echo "Hello World!"
阅读(2800) | 评论(0) | 转发(0) |