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

發(fā)展壯大離不開(kāi)廣大客戶長(zhǎng)期以來(lái)的信賴與支持,我們將始終秉承“誠(chéng)信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠(chéng)服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及成都柴油發(fā)電機(jī)等,在成都網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開(kāi)發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。
在這篇文章中,我們將會(huì)介紹一種輕量級(jí)的Shell腳本編譯器——shc,它可以將我們的Shell腳本文件編譯成可執(zhí)行文件,從而提高腳本文件的安全性。
一、shc的安裝
shc是一款免費(fèi)的軟件,可以在Linux操作系統(tǒng)中通過(guò)源碼包的方式進(jìn)行安裝,具體步驟如下:
1. 下載源碼包
我們需要前往shc官方網(wǎng)站(http://www.datsi.fi.upm.es/~frosal/sources/shc.html)下載最新版本的shc源碼包,也可以直接使用下面的命令進(jìn)行下載:
$ wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.9.6.tgz
2. 解壓源碼包
下載完源碼包后,我們需要解壓縮它,輸入下面的命令:
$ tar zxvf shc-3.9.6.tgz
3. 進(jìn)入源碼目錄
解壓后,我們會(huì)得到一個(gè)shc-3.9.6的源碼目錄,我們需要進(jìn)入這個(gè)目錄中:
$ cd shc-3.9.6
4. 編譯安裝
進(jìn)入到源碼目錄后,我們便可以使用make工具進(jìn)行編譯,并將編譯后的shc可執(zhí)行文件安裝到系統(tǒng)中:
$ make && make install
5. 驗(yàn)證安裝
如果一切順利,我們可以嘗試執(zhí)行shc命令,并查看其版本號(hào),用以驗(yàn)證shc的安裝是否成功:
$ shc -v
二、使用shc編譯腳本文件
shc的工作原理是將Shell腳本代碼編譯成C的代碼,然后再將C代碼編譯成二進(jìn)制可執(zhí)行文件。這樣,即使得到了二進(jìn)制文件,也很難還原出原始的Shell腳本代碼。
下面,我們將演示使用shc來(lái)編譯一個(gè)簡(jiǎn)單的Shell腳本文件:
$ cat test.sh
#!/bin/bash
echo “Hello, World!”
1. 使用shc編譯
進(jìn)入到test.sh所在的目錄下,我們可以使用下面的命令將test.sh編譯成可執(zhí)行文件:
$ shc -f test.sh
如果編譯成功,將會(huì)生成一個(gè)新的名為test.sh.x的二進(jìn)制可執(zhí)行文件。
2. 運(yùn)行可執(zhí)行文件
我們可以通過(guò)下面的命令來(lái)執(zhí)行剛剛編譯出來(lái)的test.sh.x文件:
$ ./test.sh.x
Hello, World!
這樣,我們就成功地將一個(gè)Shell腳本文件編譯成了一個(gè)可執(zhí)行文件。
三、shc的高級(jí)用法
除了基本的編譯功能外,shc還提供了一些高級(jí)的用法,可以更進(jìn)一步地保護(hù)我們的腳本文件。
1. 自定義編譯器
使用shc編譯Shell腳本時(shí),默認(rèn)會(huì)將代碼編譯成二進(jìn)制文件,并且會(huì)在文件頭部添加一些信息,比如shc的版本號(hào)等。而這些信息可能會(huì)被攻擊者利用來(lái)破解腳本代碼。為了防止這種情況發(fā)生,我們可以自定義編譯器,讓其不添加這些信息。
自定義編譯器的方法是在shc命令后加上-e選項(xiàng),比如:
$ shc -e 1 -f test.sh
其中,-e 1表示關(guān)閉默認(rèn)的加密算法,而-f test.sh則表示要編譯的腳本文件是test.sh。
2. 指定加密密鑰
shc默認(rèn)的加密算法是比較簡(jiǎn)單的,如果攻擊者得到了編譯后的二進(jìn)制文件,就有可能使用反匯編、逆向工程等手段還原出原始的Shell腳本代碼。為了使編譯后的可執(zhí)行文件更加安全,我們可以指定自己的密鑰來(lái)加密編譯后的文件。
使用自定義密鑰的方法是在shc命令后加上-k選項(xiàng)和密鑰,比如:
$ shc -k mypassword -f test.sh
其中,mypassword即為我們自己指定的密鑰。
3. 指定輸出目錄
shc默認(rèn)情況下會(huì)將編譯后的文件直接輸出到當(dāng)前目錄,而如果我們想要將編譯后的文件保存到指定的目錄中,可以使用-o選項(xiàng),比如:
$ shc -o /tmp/test.sh.x -f test.sh
其中,/tmp/test.sh.x即為我們指定的輸出文件路徑。
四、
shc是一款非常實(shí)用的Shell腳本編譯器,可以將我們的Shell腳本文件編譯成二進(jìn)制可執(zhí)行文件,從而提高腳本文件的安全性。在使用shc時(shí),我們可以通過(guò)自定義編譯器、指定加密密鑰、指定輸出目錄等方法來(lái)進(jìn)一步提高編譯后文件的安全性。當(dāng)然,在使用shc時(shí),也需要注意一些細(xì)節(jié)問(wèn)題,比如編譯后的可執(zhí)行文件可能會(huì)與特定的操作系統(tǒng)版本不兼容等。在實(shí)際應(yīng)用中,我們需要結(jié)合自己的需求和實(shí)際情況來(lái)進(jìn)行選擇和使用。
相關(guān)問(wèn)題拓展閱讀:
- 如何在Linux系統(tǒng)中安裝FastDFS軟件?
如何在Linux系統(tǒng)中安裝FastDFS軟件?
在Linux系統(tǒng)中進(jìn)行FastDFS軟件的安裝配置,方法的過(guò)程中是很復(fù)雜的,所以如果不是專業(yè)的電腦高手可能是沒(méi)有辦法整理出來(lái),所以為了方便網(wǎng)友們更好的了解這個(gè)軟件的安裝,一下就是詳細(xì)的過(guò)程,大家一起來(lái)看看吧!\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.進(jìn)入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沒(méi)有fdfs_trackerd和fdfs_storaged這兩個(gè)文件,就從/FastDFS/tracker和FastDFS/storage/目錄下復(fù)制過(guò)去\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.啟動(dòng)tracker\x0d\x0a./fdfs_trackerd../conf/tracker.conf\x0d\x0a查看22122端口是否啟動(dòng)起來(lái)\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個(gè)目錄默認(rèn)256*256\x0d\x0asubdir_count_per_path=6\x0d\x0a2.啟動(dòng)storage\x0d\x0a./fdfs_storaged../conf/storage.conf\x0d\x0a查看23000端口是否啟動(dòng)\x0d\x0a第七步:安裝nginx+fastdfs模塊\x0d\x0a1.安裝pcre-8.32\x0d\x0a進(jìn)入pcre-8.32\x0d\x0a./configure\x0d\x0amake\x0d\x0amakeinstall\x0d\x0a安裝如果有問(wèn)題缺省某些包,可以執(zhí)行:\x0d\x0ayumgroupinstall”DevelopmentTools”\x0d\x0a第八步:解壓fastdfs-nginx-module_v1.15.tar.gz和nginx-1.4.2.tar.gz\x0d\x0a1.進(jìn)入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進(jìn)入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安裝中如果有問(wèn)題\x0d\x0a可以執(zhí)行安裝以下包:yum-yinstallgccgcc-c++zlib-developenssl-devel\x0d\x0a3.配置nginx.conf\x0d\x0a進(jìn)入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進(jìn)入/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.啟動(dòng)nginx\x0d\x0a進(jìn)入/home/softinstall/nginx/nginx-fastdfs-install/in\x0d\x0a./nginx\x0d\x0a如果啟動(dòng)找不到\x0d\x0aerrorwhileloadingsharedlibraries:libfdfsclient.so:cannotopensharedobjectfile:Nosuchfileordirectory\x0d\x0aerrorwhileloadingsharedlibraries:libfastcommon.so:cannotopensharedobjectfile:Nosuchfileordirectory\x0d\x0a請(qǐng)使用以下軟連接\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進(jìn)入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進(jìn)入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進(jìn)入/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(本行前有#表示打開(kāi),如果想關(guān)閉此選項(xiàng),則應(yīng)該為##開(kāi)頭)\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(本選項(xiàng)關(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(默認(rèn)位置:/usr/local/fdfs/conf/storaged.conf)\x0d\x0acheck_file_duplicate=1\x0d\x0a本配置項(xiàng)解釋:是否檢測(cè)上傳文件已經(jīng)存在。如果已經(jīng)存在,則不存在文件內(nèi)容,建立一個(gè)索引鏈接以節(jié)省磁盤空間\x0d\x0akey_namespace=FastDFS\x0d\x0a本配置項(xiàng)解釋:當(dāng)上個(gè)參數(shù)設(shè)定為1時(shí),在FastDHT中的命名空間\x0d\x0akeep_alive=1\x0d\x0a本配置項(xiàng)解釋:長(zhǎng)連接配置選項(xiàng),如果為0則為短連接1為長(zhǎng)連接\x0d\x0a#include/usr/local/fdht/conf/fdht_servers.conf\x0d\x0a本配置項(xiàng)解釋:可以通過(guò)#includefilename方式來(lái)加載FastDHTservers的配置\x0d\x0a【3.5】\x0d\x0a===========================總體啟動(dòng)流程======================================\x0d\x0a\x0d\x0a啟動(dòng)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啟動(dòng)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啟動(dòng)nginx/關(guān)于linux shc的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)建站主營(yíng):成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開(kāi)發(fā)制作等網(wǎng)站服務(wù)。
新聞名稱:用shc來(lái)保護(hù)您的Linux腳本文件(linuxshc)
本文鏈接:http://m.5511xx.com/article/cocpdde.html


咨詢
建站咨詢
