新聞中心
在日常的Linux服務器管理工作中,我們通常會編寫Shell腳本來完成一些自動化的工作。由于腳本代碼都是明文的,對于這些腳本文件的保護就顯得尤為重要,以防止腳本代碼被惡意的用戶竊取、篡改或者破解。

發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務至上”的服務理念,堅持“二合一”的優(yōu)良服務模式,真誠服務每家企業(yè),認真做好每個細節(jié),不斷完善自我,成就企業(yè),實現(xiàn)共贏。行業(yè)涉及成都柴油發(fā)電機等,在成都網(wǎng)站建設、營銷型網(wǎng)站建設、WAP手機網(wǎng)站、VI設計、軟件開發(fā)等項目上具有豐富的設計經(jīng)驗。
在這篇文章中,我們將會介紹一種輕量級的Shell腳本編譯器——shc,它可以將我們的Shell腳本文件編譯成可執(zhí)行文件,從而提高腳本文件的安全性。
一、shc的安裝
shc是一款免費的軟件,可以在Linux操作系統(tǒng)中通過源碼包的方式進行安裝,具體步驟如下:
1. 下載源碼包
我們需要前往shc官方網(wǎng)站(http://www.datsi.fi.upm.es/~frosal/sources/shc.html)下載最新版本的shc源碼包,也可以直接使用下面的命令進行下載:
$ wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.9.6.tgz
2. 解壓源碼包
下載完源碼包后,我們需要解壓縮它,輸入下面的命令:
$ tar zxvf shc-3.9.6.tgz
3. 進入源碼目錄
解壓后,我們會得到一個shc-3.9.6的源碼目錄,我們需要進入這個目錄中:
$ cd shc-3.9.6
4. 編譯安裝
進入到源碼目錄后,我們便可以使用make工具進行編譯,并將編譯后的shc可執(zhí)行文件安裝到系統(tǒng)中:
$ make && make install
5. 驗證安裝
如果一切順利,我們可以嘗試執(zhí)行shc命令,并查看其版本號,用以驗證shc的安裝是否成功:
$ shc -v
二、使用shc編譯腳本文件
shc的工作原理是將Shell腳本代碼編譯成C的代碼,然后再將C代碼編譯成二進制可執(zhí)行文件。這樣,即使得到了二進制文件,也很難還原出原始的Shell腳本代碼。
下面,我們將演示使用shc來編譯一個簡單的Shell腳本文件:
$ cat test.sh
#!/bin/bash
echo “Hello, World!”
1. 使用shc編譯
進入到test.sh所在的目錄下,我們可以使用下面的命令將test.sh編譯成可執(zhí)行文件:
$ shc -f test.sh
如果編譯成功,將會生成一個新的名為test.sh.x的二進制可執(zhí)行文件。
2. 運行可執(zhí)行文件
我們可以通過下面的命令來執(zhí)行剛剛編譯出來的test.sh.x文件:
$ ./test.sh.x
Hello, World!
這樣,我們就成功地將一個Shell腳本文件編譯成了一個可執(zhí)行文件。
三、shc的高級用法
除了基本的編譯功能外,shc還提供了一些高級的用法,可以更進一步地保護我們的腳本文件。
1. 自定義編譯器
使用shc編譯Shell腳本時,默認會將代碼編譯成二進制文件,并且會在文件頭部添加一些信息,比如shc的版本號等。而這些信息可能會被攻擊者利用來破解腳本代碼。為了防止這種情況發(fā)生,我們可以自定義編譯器,讓其不添加這些信息。
自定義編譯器的方法是在shc命令后加上-e選項,比如:
$ shc -e 1 -f test.sh
其中,-e 1表示關(guān)閉默認的加密算法,而-f test.sh則表示要編譯的腳本文件是test.sh。
2. 指定加密密鑰
shc默認的加密算法是比較簡單的,如果攻擊者得到了編譯后的二進制文件,就有可能使用反匯編、逆向工程等手段還原出原始的Shell腳本代碼。為了使編譯后的可執(zhí)行文件更加安全,我們可以指定自己的密鑰來加密編譯后的文件。
使用自定義密鑰的方法是在shc命令后加上-k選項和密鑰,比如:
$ shc -k mypassword -f test.sh
其中,mypassword即為我們自己指定的密鑰。
3. 指定輸出目錄
shc默認情況下會將編譯后的文件直接輸出到當前目錄,而如果我們想要將編譯后的文件保存到指定的目錄中,可以使用-o選項,比如:
$ shc -o /tmp/test.sh.x -f test.sh
其中,/tmp/test.sh.x即為我們指定的輸出文件路徑。
四、
shc是一款非常實用的Shell腳本編譯器,可以將我們的Shell腳本文件編譯成二進制可執(zhí)行文件,從而提高腳本文件的安全性。在使用shc時,我們可以通過自定義編譯器、指定加密密鑰、指定輸出目錄等方法來進一步提高編譯后文件的安全性。當然,在使用shc時,也需要注意一些細節(jié)問題,比如編譯后的可執(zhí)行文件可能會與特定的操作系統(tǒng)版本不兼容等。在實際應用中,我們需要結(jié)合自己的需求和實際情況來進行選擇和使用。
相關(guān)問題拓展閱讀:
- 如何在Linux系統(tǒng)中安裝FastDFS軟件?
如何在Linux系統(tǒng)中安裝FastDFS軟件?
在Linux系統(tǒng)中進行FastDFS軟件的安裝配置,方法的過程中是很復雜的,所以如果不是專業(yè)的電腦高手可能是沒有辦法整理出來,所以為了方便網(wǎng)友們更好的了解這個軟件的安裝,一下就是詳細的過程,大家一起來看看吧!\x0d\x0a之一步:安裝FastDFS\x0d\x0a1.解壓FastDFS_v4.07.tar.gz==>FastDFS\x0d\x0a2.cdFastDFS==>vimmake.sh\x0d\x0a修改以下內(nèi)容\x0d\x0aTARGET_PREFIX=/usr/local/察坦讓fdfs\x0d\x0aTARGET_CONF_PATH=/usr/local/fdfs/conf\x0d\x0amkdir-p/usr/local/fdfs\x0d\x0amkdir-p/usr/local/fdfs/conf\x0d\x0a修改\x0d\x0aif;then\x0d\x0aif;then\x0d\x0aif;then\x0d\x0amkdir-p$TARGET_CONF_PATH\x0d\x0acp-fconf/tracker.conf$TARGET_CONF_PATH\x0d\x0acp-fconf/storage.conf$TARGET_CONF_PATH\x0d\x0acp-fconf/client.conf$TARGET_CONF_PATH\x0d\x0acp-fconf/http.conf$TARGET_CONF_PATH\x0d\x0acp-fconf/mime.types$TARGET_CONF_PATH\x0d\x0afi\x0d\x0acp-finit.d/fdfs_trackerd/etc/rc.d/init.d/\x0d\x0acp-finit.d/fdfs_storaged/etc/rc.d/init.d/\x0d\x0a/in/chkconfig–addfdfs_trackerd\x0d\x0a/in/chkconfig–addfdfs_storaged\x0d\x0afi\x0d\x0afi\x0d\x0a第二步:安裝libevent-2.0.19-stable.tar.gz\x0d\x0a1.解壓libevent-2.0.19-stable.tar.gz==>libevent-2.0.19-stable\x0d\x0a2.進入libevent-2.0.19-stable安裝\x0d\x0a./configure–prefix=/usr/local/libevent\x0d\x0amake\x0d\x0amakeinstall\x0d\x0a3.添加軟連接\x0d\x0aln-s/usr/local/libevent/lib/libevent-2.0.so.5/usr/lib/libevent-2.0.so.5\x0d\x0aln-s/usr/local/libevent/lib/libevent-2.0.so.5/usr/lib64/libevent-2.0.so.5\x0d\x0aln-s/usr/local/libevent/lib/libevent-2.0.so.5/lib64/libevent-2.0.so.5\x0d\x0aln-s/usr/local/敗局libevent/lib/libevent-2.0.so.5/lib/libevent-2.0.so.5\x0d\x0aln-s/usr/local/libevent/lib/libevent-2.0.so.5/usr/local/lib64/libevent-2.0.so.5\x0d\x0aln-s/usr/local/libevent/lib/libevent-2.0.so.5/usr/local/lib/libevent-2.0.so.5\x0d\x0a第三步:安裝FastDFS\x0d\x0a./make.shC_INCLUDE_PATH=/usr/local/libevent/includeLIBRARY_PATH=/usr/local/libevent/lib\x0d\x0a./信碧make.shinstall\x0d\x0a第四步:如果/usr/local/fastdfs/conf沒有fdfs_trackerd和fdfs_storaged這兩個文件,就從/FastDFS/tracker和FastDFS/storage/目錄下復制過去\x0d\x0a第五步:修改配置\x0d\x0amkdir-p/home/softinstall/data/tracker\x0d\x0a1.修改tracker.conf\x0d\x0abase_path=/home/softinstall/data/tracker\x0d\x0abind_addr=192.168.9.169\x0d\x0a1.1修改storage_ids.conf\x0d\x0a100001group1192.168.9.169\x0d\x0a2.啟動tracker\x0d\x0a./fdfs_trackerd../conf/tracker.conf\x0d\x0a查看22122端口是否啟動起來\x0d\x0a第六步:配置storage\x0d\x0amkdir-p/home/softinstall/data/store\x0d\x0amkdir-p/home/softinstall/data/store/store0\x0d\x0amkdir-p/home/softinstall/data/store/store1\x0d\x0amkdir-p/home/softinstall/data/store/store2\x0d\x0a1.修改storage.conf\x0d\x0abase_path=/home/softinstall/data/store\x0d\x0astore_path_count=3\x0d\x0astore_path0=/home/softinstall/data/store/store0\x0d\x0astore_path1=/home/softinstall/data/store/store1\x0d\x0astore_path2=/home/softinstall/data/store/store2\x0d\x0atracker_server=192.168.9.169:22122\x0d\x0a#限6*6=36個目錄默認256*256\x0d\x0asubdir_count_per_path=6\x0d\x0a2.啟動storage\x0d\x0a./fdfs_storaged../conf/storage.conf\x0d\x0a查看23000端口是否啟動\x0d\x0a第七步:安裝nginx+fastdfs模塊\x0d\x0a1.安裝pcre-8.32\x0d\x0a進入pcre-8.32\x0d\x0a./configure\x0d\x0amake\x0d\x0amakeinstall\x0d\x0a安裝如果有問題缺省某些包,可以執(zhí)行:\x0d\x0ayumgroupinstall”DevelopmentTools”\x0d\x0a第八步:解壓fastdfs-nginx-module_v1.15.tar.gz和nginx-1.4.2.tar.gz\x0d\x0a1.進入fastdfs-nginx-module_v1.15/src\x0d\x0avimfastdfs-nginx-module_v1.15/src/config\x0d\x0a修改成以下內(nèi)容\x0d\x0angx_addon_name=ngx_http_fastdfs_module\x0d\x0aHTTP_MODULES=”$HTTP_MODULESngx_http_fastdfs_module”\x0d\x0aNGX_ADDON_SRCS=”$NGX_ADDON_SRCS$ngx_addon_dir/ngx_http_fastdfs_module.c”\x0d\x0aCORE_INCS=”$CORE_INCS/usr/local/fdfs/include/fastdfs/usr/local/fdfs/include/fastcommon/”\x0d\x0aCORE_LIBS=”$CORE_LIBS-L/usr/local/fdfs/lib-lfastcommon-lfdfsclient”\x0d\x0aCFLAGS=”$CFLAGS-D_FILE_OFFSET_BITS=64-DFDFS_OUTPUT_CHUNK_SIZE=’256*1024′-DFDFS_MOD_CONF_FILENAME=’\”/usr/local/fdfs/conf/mod_fastdfs.conf\”‘”\x0d\x0a2.安裝\x0d\x0a進入nginx-1.4.2目錄\x0d\x0a./configure–prefix=/home/softinstall/nginx/nginx-fastdfs-install–with-pcre=/home/softinstall/nginx/pcre-8.32–add-module=/home/softinstall/nginx/fastdfs-nginx-module/src\x0d\x0a安裝中如果有問題\x0d\x0a可以執(zhí)行安裝以下包:yum-yinstallgccgcc-c++zlib-developenssl-devel\x0d\x0a3.配置nginx.conf\x0d\x0a進入nginx-fastdfs-install/conf\x0d\x0avimnginx.conf配置以下內(nèi)容\x0d\x0alocation/M00{\x0d\x0aroot/home/softinstall/data/store/store0/data;\x0d\x0angx_fastdfs_module;\x0d\x0a}\x0d\x0alocation/M01{\x0d\x0aroot/home/softinstall/data/store/store1/data;\x0d\x0angx_fastdfs_module;\x0d\x0a}\x0d\x0alocation/M02{\x0d\x0aroot/home/softinstall/data/store/store2/data;\x0d\x0angx_fastdfs_module;\x0d\x0a}\x0d\x0a4.配置mod_fastdfs.conf\x0d\x0amkdir-p/home/softinstall/data/nginx_mod\x0d\x0a進入/usr/local/fdfs/conf目錄\x0d\x0avimmod_fastdfs.conf\x0d\x0abase_path=/home/softinstall/data/nginx_mod\x0d\x0atracker_server=192.168.9.169:22122\x0d\x0astore_path_count=3\x0d\x0astore_path0=/home/softinstall/data/store/store0\x0d\x0astore_path1=/home/softinstall/data/store/store1\x0d\x0astore_path2=/home/softinstall/data/store/store2\x0d\x0a5.啟動nginx\x0d\x0a進入/home/softinstall/nginx/nginx-fastdfs-install/in\x0d\x0a./nginx\x0d\x0a如果啟動找不到\x0d\x0aerrorwhileloadingsharedlibraries:libfdfsclient.so:cannotopensharedobjectfile:Nosuchfileordirectory\x0d\x0aerrorwhileloadingsharedlibraries:libfastcommon.so:cannotopensharedobjectfile:Nosuchfileordirectory\x0d\x0a請使用以下軟連接\x0d\x0aln-s/usr/local/fdfs/lib/libfastcommon.so/usr/lib/libfastcommon.so\x0d\x0aln-s/usr/local/fdfs/lib/libfastcommon.so/usr/lib64/libfastcommon.so\x0d\x0aln-s/usr/local/fdfs/lib/libfdfsclient.so/usr/lib64/libfdfsclient.so\x0d\x0aln-s/usr/local/fdfs/lib/libfdfsclient.so/usr/lib/libfdfsclient.so\x0d\x0a==========================fastDHT================================\x0d\x0a【之一步:】安裝BerkleyDB\x0d\x0a【1.】tar-zxvfdb-4.7.25.tar.gz\x0d\x0a進入db-4.7.25/build_unix\x0d\x0a../dist/configure–prefix=/usr\x0d\x0a【第二步:】安裝FastDHT\x0d\x0amkdir-p/usr/local/fdht\x0d\x0amkdir-p/usr/local/fdht/conf\x0d\x0a1.tar-zxvfFastDHT_v1.23.tar.gz\x0d\x0a進入FastDHT_v1.23\x0d\x0avimmake.sh\x0d\x0a修改\x0d\x0aTARGET_PREFIX=/usr/local/fdht\x0d\x0aTARGET_CONF_PATH=/usr/local/fdht/conf\x0d\x0aif;then\x0d\x0acd..\x0d\x0acp-frestart.sh$TARGET_PREFIX/bin\x0d\x0acp-fstop.sh$TARGET_PREFIX/bin\x0d\x0aif;then\x0d\x0aif;then\x0d\x0aif;then\x0d\x0amkdir-p$TARGET_CONF_PATH\x0d\x0acp-fconf/fdhtd.conf$TARGET_CONF_PATH\x0d\x0acp-fconf/fdht_servers.conf$TARGET_CONF_PATH\x0d\x0acp-fconf/fdht_client.conf$TARGET_CONF_PATH\x0d\x0afi\x0d\x0acp-finit.d/fdhtd/etc/rc.d/init.d/\x0d\x0a/in/chkconfig–addfdhtd\x0d\x0afi\x0d\x0afi\x0d\x0afi\x0d\x0a【2.】安裝\x0d\x0a./make.sh\x0d\x0a\x0d\x0a如果出現(xiàn)global.h:18:19:error:event.h:Nosuchfileordirectory\x0d\x0a進入/home/softinstall/fastdfs/libevent-2.0.19-stable然后執(zhí)行\(zhòng)x0d\x0a./configure–prefix=/usr\x0d\x0amake\x0d\x0amakeinstall\x0d\x0a\x0d\x0a./make.shinstall\x0d\x0a【3.】配置fdht\x0d\x0a【3.1】vim/usr/local/fdht/conf/fdhtd.conf\x0d\x0aport=11411\x0d\x0abash_path=/home/softinstall/data/fastdht\x0d\x0acache_size=32MB\x0d\x0astore_sub_keys=true\x0d\x0ause_storage_id=true\x0d\x0a#include/usr/local/fdht/conf/fdht_servers.conf(本行前有#表示打開,如果想關(guān)閉此選項,則應該為##開頭)\x0d\x0a【3.2】vim/usr/local/fdht/conf/fdht_server.conf\x0d\x0agroup_count=1\x0d\x0agroup0=192.168.9.165:11411\x0d\x0a【3.3】vim/usr/local/fdht/conf/fdht_client.conf\x0d\x0akeep_alive=1(本選項關(guān)聯(lián)storaged.conf文件)\x0d\x0abase_path=/home/softinstall/data/fastdht\x0d\x0a#include/usr/local/fdht/conf/fdht_servers.conf\x0d\x0a【3.4】配置FastDFS的storaged.conf文件\x0d\x0avistoraged.conf(默認位置:/usr/local/fdfs/conf/storaged.conf)\x0d\x0acheck_file_duplicate=1\x0d\x0a本配置項解釋:是否檢測上傳文件已經(jīng)存在。如果已經(jīng)存在,則不存在文件內(nèi)容,建立一個索引鏈接以節(jié)省磁盤空間\x0d\x0akey_namespace=FastDFS\x0d\x0a本配置項解釋:當上個參數(shù)設定為1時,在FastDHT中的命名空間\x0d\x0akeep_alive=1\x0d\x0a本配置項解釋:長連接配置選項,如果為0則為短連接1為長連接\x0d\x0a#include/usr/local/fdht/conf/fdht_servers.conf\x0d\x0a本配置項解釋:可以通過#includefilename方式來加載FastDHTservers的配置\x0d\x0a【3.5】\x0d\x0a===========================總體啟動流程======================================\x0d\x0a\x0d\x0a啟動tracker/usr/local/fdfs/bin/fdfs_trackerd/usr/local/fdfs/conf/tracker.conf\x0d\x0a停止tracker/usr/local/fdfs/bin/stop.sh/usr/local/fdfs/conf/tracker.conf\x0d\x0a啟動storage/usr/local/fdfs/bin/fdfs_storaged/usr/local/fdfs/conf/storage.conf\x0d\x0a停止storage/usr/local/fdfs/bin/stop.sh/usr/local/fdfs/conf/storage.conf\x0d\x0a\x0d\x0a啟動nginx/關(guān)于linux shc的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)建站主營:成都網(wǎng)站建設、網(wǎng)站維護、網(wǎng)站改版的網(wǎng)站建設公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應式移動網(wǎng)站開發(fā)制作等網(wǎng)站服務。
網(wǎng)站題目:用shc來保護您的Linux腳本文件(linuxshc)
網(wǎng)頁URL:http://m.fisionsoft.com.cn/article/cocpdde.html


咨詢
建站咨詢
