Shell Script 的好处是简单方便, 可以直接将 Linux 指令放到 Shell Script, 但 Shell Script 其中一个问题是, 如果 Shell Script 里面有一些敏感的信息, 例如密码, 里面的内容可以被其他使用者看到。shc 是一支将 Shell Script 用 RC4 加密, 并制作成 binary 档的工具, 本篇文章会示范用 shc 将 Shell Script 加密的方法。
首先从 shc 官网下载 shc, 目前最新新版本是 3.8.9b:
# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9b.tgz
解压 shc 原始码及编译安装:
# tar zxvf shc-3.8.9b.tgz
# cd shc-3.8.9b
# make
# cp shc /usr/local/bin/
# cd shc-3.8.9b
# make
# cp shc /usr/local/bin/
现在可以用 shc 指令将 Shell Script 加密, 例如建立一支简单的 Hello World! Shell Script:
|
1 2 3 |
#!/bin/sh echo "Hello World!" |
例如以上程式储存成 test.sh, 给它可执行权限:
# chmod +x test.sh
这时用 shc 将 test.sh 加密并变成 binary 档:
# shc -f test.sh
执行以上指令后, 目录下会建立 2 个档案: test.sh.x.c 及 test.sh.x, 其中 test.sh.x.c 是 shc 从 Shell Script 建立的 C 原始码并进行加密; 而 test.sh.x 则是可执行的 binary 档, 可以直接执行:
# ./test.sh.x
当然上面的档案名称可以更改, 例如:
# mv test.sh.x test
这样其他使用者执行时, 便不会察觉到是 Shell Script, 而且看不到 Shell Script 的程式码。
shc 还有很多功能, 例如自订 binary 可执行的时限等, 详细用法可以检查 shc 的使用手册。