日常编写shell脚本时会写一些账号和密码写入脚本内,但是不希望泄露账号密码,所以对shell脚本进行加密变成可执行文件。

主要使用 shc 对 Linux shell 脚本加密,shc是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,可以避免我们shell脚本中保密信息被公开。

一、官网下载shc

shc下载地址:
    http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz   

二、安装shc

1、解压
    [root@iZ2ze2pbbffhmn53ao4tuaZ ~]# tar -zxvf shc-3.8.9.tgz
    shc-3.8.9/
    shc-3.8.9/match
    shc-3.8.9/shc-3.8.9.c
    shc-3.8.9/CHANGES
    shc-3.8.9/test.csh
    shc-3.8.9/test.bash
    shc-3.8.9/shc.c
    shc-3.8.9/shc.1
    shc-3.8.9/shc.html
    shc-3.8.9/pru.sh
    shc-3.8.9/test.ksh
    shc-3.8.9/makefile
    shc-3.8.9/shc.README
    shc-3.8.9/Copying
2、创建安装目录
    [root@iZ2ze2pbbffhmn53ao4tuaZ shc-3.8.9]# mkdir -p /usr/local/man/man1        #shc将安装命令到/usr/local/bin/目录下;将帮助文档存放在/usr/local/man/man1/目录下,如果系统中无此目录,安装时会报错
3、安装shc
    [root@iZ2ze2pbbffhmn53ao4tuaZ shc-3.8.9]# make install
    cc -Wall  shc.c -o shc
    ***    Installing shc and shc.1 on /usr/local
    ***    ¿Do you want to continue? y
    install -c -s shc /usr/local/bin/
    install -c -m 644 shc.1 /usr/local/man/man1/
  #安装过程中会提示是否继续,如果直接回车会报错,所以输入y或者yes

三、生成加密文件

  1、shc 常用参数

-e date              #指定执行文件过期日期
-m message           #指定过期时的提示的信息
-f script           #指定要编译的shell的路径及文件名(必须选参数) -r Relax security.      #允许相同操作系统的下执行 -v Verbose compilation   #打印编译的详细信息

  2、生成加密文件

[root@iZ2ze2pbbffhmn53ao4tuaZ ~]# shc -v -r -f pandadata-baby-d.sh  #显示编译信息,允许多系统执行
shc shll=bash
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc  pandadata-baby-d.sh.x.c -o pandadata-baby-d.sh.x
shc: strip pandadata-baby-d.sh.x
shc: chmod go-r pandadata-baby-d.sh.x

  生成加密文件以后,会生成两个文件后缀为pandadata-baby-d.sh.x和后缀pandadata-baby-d.sh.x.c的两个文件, 其中pandadata-baby-d.sh.x是加密后的可执行的二进制文件,用./pandadata-baby-d.sh.x即可运行,pandadata-baby-d.sh.x.c是生成pandadata-baby-d.sh.x的C语言版本的原文件,如果要提供给其他人执行,这样他只能看见脚本执行的结果就就无法查看到了执行文件的内容了,这样大大的加强了信息的保护。  

  如果需要给文件设置一个有效日期,这个时候我们增加时间参数-e即可,如果过期了我们需要给个提示信息增加-m参数即可。

shc -e 15/11/2017 -m "脚本已经过期"  pandadata-baby-d.sh

shell 脚本加密的更多相关文章

  1. shell脚本加密方式

    --作者:飞翔的小胖猪 --创建时间:2021年5月17日 --修改时间:2021年5月17日 说明 shell作为Linux操作系统中原生的语言环境,由于其简单.便捷.可以移植等特性常被运维人员作为 ...

  2. shell脚本加密

      如何保护自己编写的shell程序要保护自己编写的shell脚本程序,方法有很多,最简单的方法有两种:1.加密 2.设定过期时间,下面以shc工具为例说明: 一.下载安装shc工具shc是一个加密s ...

  3. 转载:Shell 脚本加密 - 略有修改

    shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件. shc 安装 yum -y install shc 如果yum不能安装,请移步官方下载rpm包 http ...

  4. Linux之Shell 脚本加密工具-shc

    Much effort, much prosperity. 为什么要加密Shell脚本呢?当然是为了安全! 可能脚本里面涉及到密码之类的就需要进行加密了 一.下载安装shc工具 要保护自己编写的she ...

  5. linxu下的shell脚本加密,shell生成二机制可执行文件

    再安全的加密也抵不过逆向,斗智斗勇吧,持续加密持续破解 1.简单的加密:gzexe file.sh 2.使用shc加密:下载地址:http://www.datsi.fi.upm.es/~frosal/ ...

  6. shell脚本 加密备份MySQL数据库

    1.加密备份为.bak文件(实际只是个.zip文件) #!/bin/bash # $:IP地址 # $:用户名 # $:数据库密码 # $:数据库名 # $:加密密码 # $:备份文件名 mysqld ...

  7. shell脚本基础知识

    虽然现在能在Linux系统下生存,但是自觉效率太低,和高手有很大的差距. 这就是关于Linux的知识太过匮乏,有很多事情知道该怎么做,但是就是没法在Linux下实现,为了提升工作效率,必须要接触Lin ...

  8. 对shell脚本进行加密

    用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好.但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等.同样,在shell脚本运行时会也泄露敏感信息.请问如何 ...

  9. 优化对称加密的 shell 脚本

    前言 之前一篇文章<shell 脚本实现文件对称加密>中,讲述了如何用 shell 脚本实现对称加密. 之后写管理密码脚本时,发觉该脚本的处理速度非常慢,而其原因就在 shell 的处理命 ...

随机推荐

  1. EL表达式 EL函数 自定义el函数 《黑马程序员_超全面的JavaWeb视频教程vedio》

    \JavaWeb视频教程_day12_自定义标签JSTL标签库,java web之设计模式\day12_avi\12.EL入门.avi; EL表达式 1. EL是JSP内置的表达式语言! * jsp2 ...

  2. 请求神器 postman安装

    1. 先下载postman(http://pan.baidu.com/s/1pLERz5p 密码:aqy2) 2.将你的包存放在文件夹中 列如名称为postman 3.在Chrome的地址栏中输入:c ...

  3. 解决Ubuntu 18.04中文输入法的问题,安装搜狗拼音

    首先安装fcitx一.检测是否安装fcitx首先检测是否有fcitx,因为搜狗拼音依赖fcitx> fcitx提示:程序“fcitx”尚未安装. 您可以使用以下命令安装:> sudo ap ...

  4. Django中session的基础了解

    基于cookie做用户验证时:敏感信息不适合放在cookie中 session依赖cookie session原理 cookie是保存在用户浏览器端的键值对 session是保存在服务器端的键值对 s ...

  5. P2805 [NOI2009]植物大战僵尸

    题目地址:P2805 [NOI2009]植物大战僵尸 最大权闭合子图 若有向图 \(G\) 的子图 \(V\) 满足: \(V\) 中顶点的所有出边均指向 \(V\) 内部的顶点,则称 \(V\) 是 ...

  6. Serv-U日志文件保存设置【转】

    Serv-U的日志默认是不保存在本地的,但是大多数企业对于文件传输是有审计需求的,所以这里我们可以手动配置Serv-U的日志保存到本地文件. 首先打开“域活动”,选择“设置”,在“记录到文件”处设置日 ...

  7. MySQL登录报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

    [root@pisphkdcbsql01 mysql3307]# /opt/mysql3307/bin/mysql -upisp -ppisp@ mysql: [Warning] Using a pa ...

  8. 10分钟搭建Kubernetes容器集群平台【转】

    官方提供3种方式部署Kubernetes minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境 ...

  9. 在windows下用vagrant建立lnmp开发环境

    1.安装vagrant,vitrualbox 2.下载homestead的box包,并添加到vagrant 下载地址: https://atlas.hashicorp.com/laravel/boxe ...

  10. Json的序列化与反序列化以及乱入的k_BackingField

    0.Newtonsoft.json 最简单的最强大的基于c#的json解析库是Newtonsoft.json 在NuGet程序包管理器中在线搜索“json”,选择JSon.Net,并安装.   使用到 ...