保护你的 Shell 脚本:Shell 脚本高效加密指南
在日常运维工作中,Shell 脚本的使用非常广泛。然而,随着脚本的重要性和敏感性增加,如何对其进行加密保护变得尤为重要。本文将介绍两种常见的 Shell 脚本加密工具:SHC 和 gzexe。SHC 提供了高等级的加密,而 gzexe 则适用于安全性要求不高的场景。
SHC - 高等级加密
SHC(Shell Script Compiler)是一款专门用于加密和编译 Shell 脚本的工具。它可以将 Shell 脚本转换成二进制可执行文件,保护脚本的源代码不被直接查看和修改。
注意:
- CentOS 7 与 CentOS 8 生成的脚本不通用,需要在哪个版本生成就在相同版本中使用。
通过 yum 安装
首先,通过 yum 安装 shc 工具:
yum install -y shc
通过下载源码安装
如果需要通过源码安装,可以按照以下步骤进行:
安装 gcc 及 make
如果已安装 gcc 和 make,可略过此步骤:
yum -y install gcc make
下载并编译安装 shc-4.0.3
建议使用科学上网工具从 GitHub 下载源码:shc-4.0.3下载地址
解压下载的压缩包
tar -xzvf shc-4.0.3.tar.gz
编译并安装 shc
进入解压后的目录并执行以下命令进行编译安装:
cd shc-4.0.3 ./configure && make install
安装完成
至此,shc 安装完成。
使用 shc 加密脚本
创建一个 Shell 脚本
vim test-shc.sh
内容如下:
#!/bin/sh echo `date`
生成加密脚本
shc -v -f test-shc.sh
查看生成的文件
ll
输出内容:
-rw-r--r-- 1 root root 22 May 26 14:52 test-shc.sh -rwxrwxr-x 1 root root 11120 May 26 14:52 test-shc.sh.x -rw-r--r-- 1 root root 17592 May 26 14:52 test-shc.sh.x.c
说明:
test-shc.sh
是原始的未加密 Shell 脚本。test-shc.sh.x
是二进制格式的加密 Shell 脚本。test-shc.sh.x.c
是生成加密脚本的 C 源代码。
执行加密后的脚本
./test-shc.sh.x
输出:
Thu May 26 14:56:30 CST 2022
指定脚本过期时间并设置提示信息
shc -e 06/10/2023 -m "error" -v -f test-shc.sh
如果脚本过期,提示如下:
./test-shc.sh.x: has expired! error
gzexe - 低等级加密
gzexe 是系统自带的工具,无需另外安装。它适用于对安全性要求不高的文件进行简单加密,支持 Shell 脚本以及其他文本文件。
gzexe 加密/解密用法
加密
gzexe example.sh
加密后会生成两个文件:
example.sh
: 加密后的脚本文件。example.sh~
: 原始脚本的备份文件。
解密
gzexe -d example.sh
解密后恢复原始脚本,原加密文件会被重命名为
example.sh~
。
总结
通过本文介绍的 SHC 和 gzexe 工具,你可以根据实际需求选择合适的 Shell 脚本加密方式。SHC 提供了更高等级的加密保护,适合需要严格安全性的场景;而 gzexe 则适用于对安全性要求较低的场景。
引用链接
[1] shc-4.0.3 下载地址