让你的shell脚本有类似注册码功能

post by rocdk890 / 2020-12-22 12:20 Tuesday linux技术
为什么写这篇文章呢?有时候当你一个shell脚本有你敏感信息,或者你想让这个shell脚本有一个使用期限,那么你可以看看下面的教程.
系统:centos 7.x
服务端脚本:
cat /root/soft_shell/my_server_key.sh
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
export PATH

# Check if user is root
if [ $(id -u) != "0" ]; then
    echo "Error: You must be root to run this script, please use root to initialization OS."
    exit 1
fi

time=`date +%Y%m%d`
key=`echo -n $(($time*3+43211234))|md5sum|cut -d ' ' -f1`
file="/data/www/vhosts/blog.slogra.com/tool/key.html"

echo $key > $file

ps:
最关键是key那行,你们可以按照自己喜好改.记得把服务端shell脚本加入crontab里,不然客户端脚本无法获取到正确的key就会无法执行.

客户端示例脚本内容:
#!/bin/bash
time=`date +%Y%m%d`
result=`curl -sS -L https://blog.slogra.com/tool/key.html`
key=`echo -n $(($time*3+43211234))|md5sum|cut -d ' ' -f1`

if [[ $result != $key  ]];then
    exit 0
fi

mount_dir="/data"
mkdir $mount_dir
echo -e "n\np\n1\n\n\nw" |fdisk /dev/vdb && mkfs.ext4 /dev/vdb1 && fdisk /dev/vdb -l 
 
uuid=`blkid /dev/vdb1|awk '{print $2}'|sed s/\"//g`
echo "$uuid $mount_dir                   ext4    defaults        1 1" >> /etc/fstab
mount -a
df -h

最后自己对客户端脚本进行加密下就可以了,最后如果你们不想每次执行脚本的时候都去对比下key的话,可以修改成每天只对比一次.
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-778.html

标签: centos shell 加密 对比 密钥 注册码

评论: