日常編寫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