从事 Linux 开发的同学,经常需要编写 shell 脚本,有时脚本中会涉及到一些敏感内容,比如一些 IP 地址,用户名以及密码等,或者脚本中有一些关键的代码, 所有这些内容你都不想别人阅读或者修改,更进一步,你希望对脚本设置过期时间,超过指定时间时间之后,脚本就无法使用
在不改变脚本内容、功能以及执行方式的情况下,有没有办法实现上面的需求呢?
答案是:有的, 在Linux下,我们可以使用 shc
这个工具来实现隐藏shell脚本内容以及设置过期时间的目的
简介
shc
是一个通用shell脚本编译器,它将 shell 脚本编译 可执行的二进制文件,它的功能以及执行方式和原始脚本没有区别
和 gcc
编译器不同的是,shc
并没有把脚本源代码转化成机器码,它只是生成了一份 C
语言代码,这份 C
语言代码中包含了加密的原始shell脚本,并为它添加了过期功能,然后,通过gcc
编译器将C
代码编译成可执行的二进制文件
安装
目前,大多数的 Linux 发行版的仓库中都已经包含了 shc
, 只需要使用默认的包管理器就可以安装,具体的安装命令如下:
yum install shc
输入 shc -v
命令,下面的输出表示安装成功
[root@ecs-centos-7 shc_test]# shc -v
shc parse(-f): No source file specified
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-o outfile] [-rvDSUHCABh] -f script