在写关于Oracle脚本的时候,有时候会将一些密码写到里面,不太安全。这时候可以使用Linux gzexe命令来加密这些脚本,保证安全性。
简单示例:
[root@dbserver oinsdir]# cat 1.sh
#!/bin/bash
echo "hello"
会生成一个1.sh~的文件
[root@dbserver oinsdir]# ls -l
total 2005992
-rw-r--r-- 1 oracle oinstall 801603584 Jul 8 2012 10201_database_linux_x86_64.cpio
-rwxr--r-- 1 root root 428 Jul 9 14:34 1.sh
-rwxr--r-- 1 root root 25 Jul 9 14:32 1.sh~
drwxr-xr-x 6 oracle oinstall 4096 Oct 23 2005 database
drwxr-xr-x 5 oracle oinstall 4096 Apr 29 2010 Disk1
-rw-r--r-- 1 root root 1249857866 Jun 6 15:18 p8202632_10205_Linux-x86-64.zip
-rwxr-xr-x 1 oracle oinstall 171131 Apr 29 2010 README.htm
-rw-r--r-- 1 oracle oinstall 455240 Jul 22 2011 redis-2.2.12.tar.gz
total 2005992
-rw-r--r-- 1 oracle oinstall 801603584 Jul 8 2012 10201_database_linux_x86_64.cpio
-rwxr--r-- 1 root root 428 Jul 9 14:34 1.sh
-rwxr--r-- 1 root root 25 Jul 9 14:32 1.sh~
drwxr-xr-x 6 oracle oinstall 4096 Oct 23 2005 database
drwxr-xr-x 5 oracle oinstall 4096 Apr 29 2010 Disk1
-rw-r--r-- 1 root root 1249857866 Jun 6 15:18 p8202632_10205_Linux-x86-64.zip
-rwxr-xr-x 1 oracle oinstall 171131 Apr 29 2010 README.htm
-rw-r--r-- 1 oracle oinstall 455240 Jul 22 2011 redis-2.2.12.tar.gz
我们看一下它们的内容
[root@dbserver oinsdir]# strings 1.sh
#!/bin/sh
skip=14
tmpdir=`/bin/mktemp -d ${TMPDIR:-/tmp}/gzexe.XXXXXXXXXX` || exit 1
prog="${tmpdir}/`echo \"$0\" | sed 's|^.*/||'`"
if /usr/bin/tail -n +$skip "$0" | "/bin"/gzip -cd > "$prog"; then
/bin/chmod 700 "$prog"
trap '/bin/rm -rf $tmpdir; exit $res' EXIT
"$prog" ${1+"$@"}; res=$?
else
echo "Cannot decompress $0"
/bin/rm -rf $tmpdir
exit 1
fi; exit $res
1.sh
[root@dbserver oinsdir]# strings 1.sh~
#!/bin/bash
echo "hello"
[root@dbserver oinsdir]# ./1.sh
hello
两个都是可以执行的脚本文件
加密后1.sh为加密后的脚本文件
1.sh~为源文件