shell脚本加密笔记!

你写的shell在生产环境是否加密?反正我是没有,线上环境看就看呗,觉得没啥。其实想想,好像也有几个好处。

1、简单加密,防止别人看里面具体内容。

2、可以隐蔽脚本中的密码等信息。(比如你的备份脚本,涉及到密码等问题)

好像还有点用处,大概常用的两种方式。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第一种方法(gzexe):

这种加密方式不是非常保险的方法,但是能够满足一般的加密用途。它是使用系统自带的gzexe程序,它不但加密,同时压缩文件。

使用方法: gzexe file.sh 它会把原来没有加密的文件备份为 xx.sh~ ,同时 xx.sh 即被变成加密文件;

[[email protected] ~]# ./1.sh 

2016年 08月 31日 星期三 15:38:45 CST

[[email protected] ~]# gzexe 1.sh 

1.sh: 120.0%


[[email protected] ~]# ll 1.sh*

-rwxr-xr-x 1 root root 831 8月  31 15:38 1.sh

-rwxr-xr-x 1 root root   5 8月  31 15:30 1.sh~

[[email protected] ~]# cat 1.sh~

date

[[email protected] ~]#

建议使用,一方面系统自带命令,达到目的即可,没人闲的破解你的脚本,就算要破解,先进入你系统再说。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第二种方式 shc

shc是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,这个办法也很好的解决了脚本中含有IP、密码等不希望公开的问题。

包下载链接:

http://www.datsi.fi.upm.es/~frosal/sources/

wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.6.tgz

[[email protected] local]# tar xf shc-3.8.6.tgz 

[[email protected] local]# cd shc-3.8.6

[[email protected] shc-3.8.6]# mkdir -p /usr/local/man/man1

这步是必须的,不然安装过程中会报错,shc将安装命令到/usr/local/bin/目录下;将帮助文档存放在/usr/local/man/man1/目录下,如果系统中无此目录,安装时会报错,可创建此目录后再执行安装。

[[email protected] shc-3.8.6]# make install

*** Installing shc and shc.1 on /usr/local

*** Do you want to continue? yes

install -c -s shc /usr/local/bin/

install -c -m 644 shc.1 /usr/local/man/man1/

[[email protected] shc-3.8.6]#

yum install glibc  glibc.i686 -y

用法:

-f 指定要加密的文件

[[email protected] ~]# shc -r -f 1.sh

1.sh.x.c: In function ‘chkenv‘:

1.sh.x.c:277: warning: cast from pointer to integer of different size

运行后会生成两个文件,xx.x 和 xx.x.c.   其中xx.x是加密后的可执行的二进制文件;用./xx.x即可运行,xx.x.c是生成xx.x的原文件(c语言).

[[email protected] ~]# ll 1.sh*

-rwxr-xr-x 1 root root   831 8月  31 15:38 1.sh

-rwxr-xr-x 1 root root     5 8月  31 15:30 1.sh~

-rwx--x--x 1 root root 12656 8月  31 16:04 1.sh.x

-rw-r--r-- 1 root root 14001 8月  31 16:04 1.sh.x.c

[[email protected] ~]#

不建议使用,需要单独安装管理,比较麻烦。如果安全性要求极高,倒是可以参数。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

时间: 2024-05-11 16:07:18

shell脚本加密笔记!的相关文章

shell 脚本实战笔记(11)--Mysql在linux下的安装和简单运维

前言: linux中安装mysql以及配置的管理, 基础的运维和管理还是需要会一些的. 这边作下笔记, 以求天天向上(^_^). 安装流程:*). 安装mysql-server1). 借助yum检索相关的mysql rpm包yum search mysqlmysql-server.x86_64 正是我们想要的 2). 安装mysql-serveryum install mysql-server.x86_64 -y默认mysql-client也安装好 3). 启动mysql服务/etc/init.

shell 脚本实战笔记(9)--linux自动批量添加用户

前言: 添加linux用户帐号,这个相对简单, 在面对集群, 许多机器的时候, 我们该如何去做和实现? 这篇短文, 简单讲解一些思路, 尽可能地涉及周边的一些知识点. 不光是运维人员会面临这个问题, 对一个基于linux平台的集群服务或软件(比如hadoop集群), 有时也会涉及到这块. 应用场景: 是以centos 6.4作为演示的系统, 其他的系统有类同, 也有差异, 且以实战演练, 一步步的讲述下流程. *) 实战演练 查阅useradd的使用和参数选项useradd --help -d,

shell脚本相关笔记

书写一个shell脚本并使之执行的步骤: 1. 打开一个文件,以 #! bin/bash作为开头 2.在文件中写入一些正确可执行的shell语句 3.保存文件 4.更改文件权限,执行文件 一些小技巧: 如果想在系统中添加自己的命令,比如执行自己建好的shell脚本语句这样一条命令 实例: 1.创建文件cd.sh 内容为: #! bin/bash cd xxx/yyy/zzz 2.保存文件 3.执行文件./cd.sh 现在发现并没有能够打开我们想要打开的目录并进去. 原因是shell还有分父she

sch 助shell脚本加密 02

sch 助shell脚本加密 02 一.  简介 SHC(shell script compiler),即shell脚本编译器.通过SHC编译过的脚本对普通用户而言是不可读的,因此如果你想让你的代码实现加密功能,让其有效的屏蔽一些敏感信息,这个时候可以考虑使用SHC:它通常情况下是不太容易被破解的,但是还是有些人可以通过反编译SHC的方法来实现破解加密过的脚本. 二.  实验测试开始 2.1 下载并编译SHC [[email protected] ~]# wget http://www.dats

shell 脚本实战笔记(6)--集群环境配置检测

1). 背景: 集群部署的时候, 需要一致的配置和环境设置. 对于虚拟机集群, 可以借助镜像拷贝, 复制和还原集群机器. 对与物理机集群而言, 则不一样, 如果机器一多, 多人去操作和配置, 对于成熟精干的团队还好, 对于不熟悉环境的小团队, 由于水平的参差不齐, 往往会导致不一致的环境. 因此无论如何, 写脚本进行自动化的配置和环境校验总是最佳实践. 2). 假设应用场景:*) 系统环境: 安装CDH5, 集群规模为16台机器, 每台机器16CPU, 内存16G, 2块SATA盘共500G,

shell 脚本实战笔记(3)--集群机器的时间同步设置

背景: 有些分布式服务(比如HBase服务), 依赖于系统时间戳, 如果集群各个节点, 系统时间不一致, 导致服务出现诡异的情况. 解决方案: 那如何同步集群各个节点之间的时间? 采用NTP(Network Time Protocol)方式来实现, 选择一台机器, 作为集群的时间同步服务器, 然后分别配置服务端和集群其他机器 1.NTP服务端 *) 安装ntp服务 yum install ntp *) 配置/etc/ntp.conf 这边采用本地机器作为时间的原点 注释server列表 #ser

Bash Shell脚本编程笔记总结(一)

本文是上课笔记总结,涉及细节知识点会在以后文章说明! bash脚本编程: 脚本程序:解释器解释执行: shell: 交互式接口:编程环境: shell: 能够提供一些内部命令,并且能通过PATH环境变量找到外部命令:把命令提交给内核启动为进程: 编程环境: 流程控制语句: 顺序执行: 循环执行: 选择执行: 条件测试:真.假 $? 命令的状态结果: 0: 真 1-255: 假 过程式的编程语言的元素:变量.流程.函数.数组 变量:局部变量.本地变量.环境变量.位置参数变量.特殊变量 变量: 数值

Bash Shell脚本编程笔记总结(二)

本文接上一部分:Bash Shell脚本编程笔记总结(一) 数组: 连续的多个独立内存空间,每个内存空间相当于一个变量 数组元素:数组名+索引 索引:从0开始编号 声明数组: declare -a ARRAR_NAME 关联数组: declare -A ARRAY_NAME 支持稀疏格式: 数组元素的赋值: (1) 一次只赋值一个元素 ARRAY[index]=VALUE a[0]="hello" (2) 一次赋值全部元素 ARRAY=("mon" "tu

gzexe 助shell脚本加密 01

gzexe 助shell脚本加密 01 一.  简介 很多时候我们的脚本会涉及到一些私密的信息,例如:用户名,密码,或者其它重要信息的时候,我们使用一些加密的手段来屏蔽这些信息,确保系统的安全已经脚本的可流传性,通常情况下我们只需要通过系统自带的gzexe这个工具就够了. 二.         实验测试开始: 2.1 编写一个用于测试的脚本 [[email protected] ~]# vi woo.sh #! /bin/ksh echo 'PrudentWoo'' '`date +%Y-%m-