在Linux系统中写相关脚本,特别是运维类型的脚本,难免会在脚本中指定一个账户密码以及IP信息,处于安全考虑我们可能不希望其他人员登陆上来可以看到这些信息,这时候的办法就是进行打包编译成为二进制文件进行运行,这里使用到的工具就是网上说所的SHC工具,不过百度了一圈都是旧版本的文件,使用旧版本编译后发现不能正常运行,编译的脚本运行会成为僵尸进程
下面来看看最新版本的安装方法,最新版本的源码在GitHub上维护
首先下载源文件,如果服务器可以连接到Internet,我门需要在Linux上安装git工具,然后把代码克隆到本地
# yum install git gcc
#git clone https://github.com/neurobin/shc
如果是离线环境,我们首先需要安装本地gcc编译环境,访问访问GIThub项目地址进行下载
安装非常的简单,前提是得有gcc编译环境
#./configure
#make
#make install
使用方法,很简单
[root@mail test]# shc -h
shc Version 3.9.6, Generic Shell Script Compiler
shc GNU GPL Version 3 Md Jahidul Hamid <jahidulhamid@yahoo.com>
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-o outfile] [-rvDUCABh] -f script
-e %s Expiration date in dd/mm/yyyy format [none]
-m %s Message to display upon expiration ["Please contact your provider"]
-f %s File name of the script to compile
-i %s Inline option for the shell interpreter i.e: -e
-x %s eXec command, as a printf format i.e: exec('%s',@ARGV);
-l %s Last shell option i.e: --
-o %s output filename
-r Relax security. Make a redistributable binary
-v Verbose compilation
-D Switch ON debug exec calls [OFF]
-U Make binary untraceable [no]
-C Display license and exit
-A Display abstract and exit
-B Compile for busybox
-h Display help and exit
Environment variables used:
Name Default Usage
CC cc C compiler command
CFLAGS <none> C compiler flags
Please consult the shc man page.
在文件夹下有一个test目录里面有各种sh的测试脚本我们可以来进行测试,或者我们自己写脚本
#cd test
#shc -f test.bash -o test
-o 重定向输出的文件
-f 指定脚本文件
然而还有个很强大的功能,如果公司老板惹你不高兴,把脚本添加一个有效期,过了有效期就无法执行了
例如:
[root@mail test]# shc -e "28/12/2017" -m "error code 0" -f test.bash -o qnjslm
-e 指定脚本失效日期,格式dd/mm/yyyy
-m 过期后显示的提示信息,哈哈做坏事千万不要留名了
执行效果如下
[root@mail test]# date
Fri Dec 29 06:09:17 UTC 2017
[root@mail test]# ./qnjslm
./qnjslm: has expired!
error code 0
[root@mail test]#
文章末尾固定信息
评论