精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何用自解壓腳本打包軟件和數據

譯文
開源
自解壓腳本是一種向用戶分發軟件或數據的快速可靠的方式,無需包管理器、提升的權限或其他限制。

[[438295]]

【51CTO.com快譯】有時,您需要一種快速可靠的方式向用戶分發數據或軟件,無需使用包管理器(比如說,最終用戶可能沒有安裝應用程序的root訪問權限)。

這個問題可以通過使用容器和Podman或Docker來解決,但如果它們在目標系統上沒有,怎么辦?如果要求之一是應用程序在裸機環境中正常工作,又怎么辦?

您可以將Python與pip一起使用(您可能知道也可以打包非Python工件),但是那樣可能面臨一些安裝上的限制(虛擬環境或--user選項),更不用說需要樣板代碼來打包Python代碼了。

我在本文中演示了一種非常小巧但有效的技術來編寫不需要提升權限的自解壓腳本。

設置您的數據

Damiaan Zwietering有一個很酷的關于新冠病毒的Git代碼存儲庫,帶有數據和可視化(Jupyter書籍和Excel電子表格),但沒有安裝程序。假設您想將其提供給自己的用戶,但他們無權訪問Git。您就可以為用戶創建自解壓安裝程序。

在實際情況下,您已經擁有想要分發的數據。但是您有一些示例數據要處理,首先將該存儲庫克隆到主目錄:

  1. $ git clone https://gitlab.com/dzwietering/corona.git 

現在有很多數據和不那么淺的目錄結構,但是您可以使用git archive命令創建一個.tar文件:

  1. $ cd $HOME / corona 
  2. $ git archive --verbose --output $tempdir/corona.tar.gz HEAD 

對于本示例,該打包文件是您想要與用戶共享的文件。

自解壓腳本的結構

自解壓腳本分為以下幾個部分:

1. 幫助用戶提取數據的代碼(“有效載荷”)

2. 從腳本中分離數據(要提取)的錨點

3. 提取其后數據的錨點位置

事實證明,Bash非常擅長以這種方式來定義腳本。

創建有效載荷

這里有個想法:假設您需要分發的數據是一個含有許多腳本和數據的目錄。您希望保持權限和結構完好無缺,您希望用戶將其“解壓縮”到主目錄中。

這聽起來像是tar命令的工作。但是假設您的用戶不知道如何使用tar,或者他們在安裝tarball文件時想要特殊選項(比如僅提取特定文件)。

另一個問題是您的.tar存檔是一個二進制文件。如果您要通過電子郵件發送,必須使用Uuencode或Base64對其進行正確編碼,以便安全傳輸。

該怎么辦?不要扔掉.tar文件。相反,準備好它,以便您可以將其附加到Bash腳本(您將很快編寫):

  1. $ base64 $tempdir/corona.tar.gz > $tempdir/corona_payload 
  2. $ file $tempdir/corona_payload 
  3. /tmp/tmp.8QNdzdKEkG/corona_payload: ASCII text 

從.tar文件提取數據

您可以將所有內容倒到新目錄中:

  1. $ newbase=$HOME/coronadata 
  2. $ test ! -d $newbase && /bin/mkdir --parents --verbose $newbase 
  3. $ tar --directory $newbase \ 
  4. --file corona.tar.gz --extract --gzip --verbose 

也可以僅提取其中的一部分,比如措施、試驗和測試目錄。

  1. $ newbase=$HOME/coronadata 
  2. $ test ! -d $newbase && /bin/mkdir --parents --verbose $newbase 
  3. $ tar --directory $newbase --file corona.tar.gz \ 
  4. --extract --gzip --verbose measures experiment test 

針對這次演練,將全部內容提取到基本目錄(比如$HOME),因此結果如下:

  1. $HOME/$COVIDUSERDIR 

剖析自解壓腳本

以下是我的自解壓腳本的代碼。您可以將腳本保存在自己的Git存儲庫中,并重復用于其他部署環境。要注意的事項如下:

  • SCRIPT_END是有效載荷在腳本里面開始的位置。
  • 它凈化用戶輸入。
  • 一旦您搞清楚了元數據的位置,從腳本中提取($0),重新解碼成二進制代碼,然后拆包。
  1. #!/usr/bin/env bash 
  2. # Author: Jose Vicente Nunez 
  3. SCRIPT_END=$(/bin/grep --max-count 2 --line-number ___END_OF_SHELL_SCRIPT___ "$0"| /bin/cut --field 1 --delimiter :| /bin/tail -1)|| exit 100 
  4. ((SCRIPT_END+=1)) 
  5. basedir= 
  6. while test -z "$basedir"; do 
  7.     read -r -p "Where do you want to extract the COVID-19 data, relative to $HOME? (example: mydata -> $HOME/mydata. Press CTRL-C to abort):" basedir 
  8. done 
  9. :<<DOC 
  10. Sanitize the user input. This is quite restrictive, so it depends of the real application requirements. 
  11. DOC 
  12. CLEAN=${basedir//_/} 
  13. CLEAN=${CLEAN// /_} 
  14. CLEAN=${CLEAN//[^a-zA-Z0-9_]/} 
  15. if [ ! -d "$HOME/$CLEAN" ]; then 
  16.     echo "[INFO]: Will try to create the directory $HOME/$CLEAN" 
  17.     if ! /bin/mkdir --parent --verbose "$HOME/$CLEAN"; then 
  18.         echo "[ERROR]: Failed to create $HOME/$CLEAN" 
  19.         exit 100 
  20.     fi 
  21. fi 
  22.  
  23. /bin/tail --lines +"$SCRIPT_END" "$0"| /bin/base64 -d| /bin/tar --file - --extract --gzip --directory "$HOME/$CLEAN" 
  24. exit 0 
  25. # Here's the end of the script followed by the embedded file 
  26. ___END_OF_SHELL_SCRIPT___ 

那么您如何將有效載荷添加到腳本?只要用一點cat粘合劑將兩部分組合起來:

  1. $ cat covid_extract.sh \ 
  2. $tempdir/corona_payload > covid_final_installer.sh 

使它變成可執行:

  1. $ chmod u+x covid_final_installer.sh 

您可以看到安裝程序如何與有效載荷結合起來。由于含有有效載荷,它很龐大。

運行安裝程序

這管用嗎?不妨親自試一下:

  1. $ ./covid_final_installer.sh  
  2. Where do you want to extract the COVID-19 data, relative to /home/josevnz? (example: mydata -> /home/josevnz/mydata. Press CTRL-C to abort):COVIDDATA 
  3. [INFO]: Will try to create the directory /home/josevnz/COVIDDATA 
  4. /bin/mkdir: created directory '/home/josevnz/COVIDDATA' 
  5. $ tree /home/josevnz/COVIDDATA 
  6. /home/josevnz/COVIDDATA 
  7. ├── acaps_covid19_government_measures_dataset_0.xlsx 
  8. ├── acaps_covid19_government_measures_dataset.xlsx 
  9. ├── COVID-19-geographic-disbtribution-worldwide.xlsx 
  10. ├── EUCDC.ipynb 
  11. ├── experiment 
  12. ... 

自解壓安裝程序很有用

我覺得自解壓安裝程序很有用,原因多多。

首先,您可以隨意將它們做成很復雜或很簡單。最復雜的部分在于規定腳本應從哪里提取有效載荷。

知道這種方法很實用,因為惡意軟件安裝程序也使用這種方法。現在您有了更充分的準備可以在腳本中發現這樣的代碼。同樣重要的是,現在您知道如何通過在自己的自解壓腳本中驗證用戶輸入來阻止外殼注入濫用現象。

原文標題:Package software and data with self-compressed scripts,作者:Jose Vicente Nunez

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:華軒 來源: 51CTO
相關推薦

2024-02-19 16:15:07

2024-01-19 16:37:17

Linux操作系統

2014-09-22 19:30:02

大數據軟件分析金融數據

2022-02-20 19:02:16

RollupVue 2JavaScrip

2009-08-04 09:53:21

linux創建文件命令tail命令自解壓

2011-09-13 13:36:17

PhoneGap

2010-05-24 13:18:30

VMware ESX備份腳本

2023-12-12 09:00:00

2020-07-10 09:49:53

數據清理數據分析查找異常

2019-06-17 08:00:55

multipassbash腳本

2011-07-26 10:09:07

組策略軟件部署

2020-03-14 12:24:06

數據映射數據轉換數據集成

2017-12-26 09:35:33

2022-06-27 17:40:14

大數據數據科學

2016-02-17 15:15:01

2024-12-10 07:10:00

2021-03-18 10:21:45

數據科學大數據機器學習

2021-12-02 09:00:00

數據庫NoSQLWeb

2022-05-02 18:29:35

bashshellLinux

2021-01-26 07:11:26

Redis數據同步數據遷移
點贊
收藏

51CTO技術棧公眾號

一二三四区在线观看| 国产剧情日韩欧美| 高清一区二区视频| 福利在线视频网站| 成人h版在线观看| 国产精品1234| 男女免费视频网站| 久久99青青| 在线不卡中文字幕| 国产在线青青草| 国产精品刘玥久久一区| 9i在线看片成人免费| 国产精品老牛影院在线观看| 国产亚洲精久久久久久无码77777| 一区二区三区视频免费观看| 91精品国产一区二区三区| 玩弄中年熟妇正在播放| 秋霞午夜理伦电影在线观看| 99久久99久久精品国产片果冻| 国产欧美一区二区三区在线看| 欧美一级高潮片| 天天影视欧美综合在线观看| 亚洲色图13p| 国产视频精品视频| 成人免费观看49www在线观看| 亚洲成av人片一区二区梦乃| 一区二区成人国产精品| 亚洲色图 校园春色| 国产精品一区专区| 国产日韩欧美91| 无码人妻精品一区二区50| 亚洲午夜精品久久久久久app| 中文字幕日韩欧美在线视频| 网站免费在线观看| 国偷自产av一区二区三区| 91精品国产色综合久久不卡电影| 无需播放器的av| 在线免费看h| 亚洲h在线观看| 日本丰满大乳奶| 快射av在线播放一区| 欧美激情综合五月色丁香小说| 国产自产精品| 日韩中文字幕免费观看| 粉嫩嫩av羞羞动漫久久久| 亚洲精品欧美一区二区三区| 亚洲综合网av| 蜜臀av性久久久久蜜臀av麻豆| 国产成人精品久久亚洲高清不卡| av黄色在线播放| 亚洲综合二区| 日韩免费在线观看视频| 日韩在线 中文字幕| 另类av一区二区| 国产成人在线视频| 波多野结衣理论片| 免费在线观看视频一区| 国产精品美女主播在线观看纯欲| 黄色网址中文字幕| 日本欧美大码aⅴ在线播放| 国产精品99久久久久久www| 无码视频在线观看| 免费观看成人av| 成人黄色大片在线免费观看| 国产欧美久久久| 国产不卡视频在线播放| 国产精品美女诱惑| 色哟哟在线观看| 日本一区二区三区四区在线视频| 亚洲精品人成| 国产精品一区二区三区视频网站| 夜夜嗨av一区二区三区网页| 青青青青草视频| 日本久久免费| 欧美日韩黄色一区二区| 亚洲男人天堂2021| 成人免费直播在线| 亚洲欧洲在线免费| 神马久久精品综合| 伊人天天综合| 国产ts人妖一区二区三区| 亚洲视屏在线观看| 国产精品99久久久久久久女警| 高清av免费一区中文字幕| 污污网站在线免费观看| 91视频在线看| 在线精品亚洲一区二区| 欧洲黄色一区| 色香蕉久久蜜桃| 中文字幕第22页| 美女视频亚洲色图| 日韩中文字幕精品| 国产精品500部| 麻豆精品一区二区三区| 国产乱子伦精品| 日本精品一区二区三区高清 久久 日本精品一区二区三区不卡无字幕 | 精品女同一区二区| 自拍偷拍视频亚洲| 欧美在线影院| 国产成人综合精品在线| 性一交一乱一透一a级| 2023国产精品| 亚洲黄色网址在线观看| 日本免费久久| 亚洲成人精品久久久| 1024手机在线观看你懂的| 欧美久久99| 国产精品丝袜一区二区三区| 欧性猛交ⅹxxx乱大交| 国产精品美女久久久久高潮| 精品无码国模私拍视频| 97精品资源在线观看| 亚洲人成伊人成综合网久久久| 2018天天弄| 美日韩一级片在线观看| 裸体丰满少妇做受久久99精品| 巨大荫蒂视频欧美另类大| 一本色道久久综合亚洲91| 91精品人妻一区二区三区四区| 热久久天天拍国产| 欧美亚洲视频在线看网址| 性生交大片免费看女人按摩| 国产精品成人免费精品自在线观看| 免费一级特黄毛片| 91精品国产自产在线丝袜啪| 精品国偷自产在线视频| 日本欧美www| 久久夜色精品国产欧美乱极品| 久操手机在线视频| 国产精品毛片aⅴ一区二区三区| 亚洲人成毛片在线播放| 草久视频在线观看| 粉嫩绯色av一区二区在线观看| 超碰97免费观看| 欧美风情在线视频| 一区二区三区动漫| 波多野结衣不卡| 久久亚洲精品小早川怜子| 免费网站在线观看视频| 一区二区三区视频免费视频观看网站 | 精品人妻一区二区三区视频| 亚洲国产精品第一区二区| av一区二区三区在线观看| 成人短视频在线| 91精品蜜臀在线一区尤物| 99成人在线观看| а天堂中文在线官网| 美日韩一区二区三区| 欧美高清一区二区| 三上悠亚激情av一区二区三区 | 亚洲一区二区免费在线| 麻豆电影在线播放| 欧美一区二区三区免费在线看 | 成人国产精品久久久| 黄色动漫在线| 91精品国产综合久久蜜臀| 婷婷激情四射网| 国产精品一区二区在线观看网站 | 欧美一区二区三区在线视频| 午夜69成人做爰视频| 成人综合婷婷国产精品久久 | 91黄页在线观看| 日韩精品中文字| 日韩综合在线观看| 中文字幕制服丝袜一区二区三区 | 青青艹视频在线| 亚洲瘦老头同性70tv| 国产精品久久久久久久9999| 91成人高清| 日韩一级大片在线观看| 国产精品23p| 久久精品一区二区三区av| 国产无色aaa| 激情久久久久| 欧美日韩一区在线观看视频| 欧美成人毛片| 久久久久亚洲精品成人网小说| 五月婷婷六月色| 欧美色手机在线观看| 青青草激情视频| 91美女在线视频| 最新天堂中文在线| 伊人久久久大香线蕉综合直播| 欧美久久久久久| 国产激情精品一区二区三区| 91精品国产91久久| 亚洲麻豆精品| 精品黑人一区二区三区久久 | 日本不卡在线视频| 天天做天天躁天天躁| 欧美欧美黄在线二区| 亚洲综合视频1区| 外国成人直播| 九九热精品视频在线播放| 国产视频网站在线| 精品欧美一区二区久久| 中文字幕在线视频第一页| 亚洲国产美国国产综合一区二区| 九九九视频在线观看| 成人黄色777网| 日本 片 成人 在线| 亚洲美女色禁图| 欧美性受xxxx黑人猛交88| 久久不见久久见中文字幕免费| 亚洲最大福利网站| 91在线亚洲| 2019中文字幕在线| 香蕉久久aⅴ一区二区三区| 国产一区二区三区在线观看视频| 亚洲女人18毛片水真多| 在线不卡中文字幕| 中文无码av一区二区三区| 狠狠躁夜夜躁人人躁婷婷91| 国产精品久久久久久久精| 日本一区二区综合亚洲| 无码人妻精品一区二区三应用大全| 国产一区二区三区精品欧美日韩一区二区三区 | 妺妺窝人体色www在线下载| 国产精品美女久久久久久2018| 国产交换配乱淫视频免费| 不卡av电影在线播放| 韩国三级丰满少妇高潮| 精品综合免费视频观看| 好男人www社区| 久久综合五月| 久久国产乱子伦免费精品| 激情综合自拍| bt天堂新版中文在线地址| 一区二区三区网站| 正在播放国产精品| 久久一区91| 伊人情人网综合| 久久中文视频| 一区二区三区四区免费视频| 日韩av有码| 色一情一乱一伦一区二区三区丨| 亚洲肉体裸体xxxx137| 免费久久99精品国产自| 日韩高清三区| 蜜桃成人在线| 精品中文一区| 午夜精品一区二区在线观看的 | 成人黄色大片在线观看 | 加勒比中文字幕精品| 国产精品亚洲一区| 老汉色老汉首页av亚洲| 久久99精品久久久久久青青日本 | 国产一区二区精品久久99| 女人高潮一级片| 韩国成人福利片在线播放| 亚洲国产午夜精品| 成人性生交大合| 国产又黄又粗又猛又爽的视频 | 亚洲午夜高清视频| 99精品小视频| 久久久久久久久影视| 狠久久av成人天堂| 国产精品无码av在线播放| 美女久久一区| 777视频在线| 国产精品影视网| 亚洲一区二区在线免费| 91免费观看在线| 黄色av免费播放| 亚洲免费观看高清完整版在线观看 | 99re6在线观看| 国产精品99久久久久久久vr| 亚州av综合色区无码一区| 久久久蜜臀国产一区二区| 精品成人无码一区二区三区| 亚洲日本青草视频在线怡红院| 欧美激情精品久久| 色先锋aa成人| 国产手机视频在线| 精品成人一区二区三区四区| 色综合久久网女同蕾丝边| 日韩一区二区在线视频| 免费影视亚洲| 日韩美女在线观看| 成人在线啊v| 久草一区二区| 五月天久久网站| 91成人在线观看喷潮教学| 日本vs亚洲vs韩国一区三区 | 亚洲图片视频小说| 亚洲大胆人体在线| 成人午夜电影在线观看| 九九久久久久99精品| 欧美专区福利免费| 成人羞羞视频免费| 成人a'v在线播放| 黄色激情在线视频| 全国精品久久少妇| 一本色道久久hezyo无码| 国产欧美日韩不卡| 香蕉免费毛片视频| 777久久久精品| 国产在线观看免费网站| 欧美激情国产日韩精品一区18| 高清成人在线| 国产精品日韩一区二区| 日韩毛片视频| 1024精品视频| 国产成人综合亚洲网站| 谁有免费的黄色网址| 亚洲观看高清完整版在线观看| 中文字幕 自拍偷拍| 日韩av网址在线| 在线视频中文字幕第一页| 国产精品久久久久久久久久免费 | 国产精品综合一区二区三区| 日本黄色特级片| 亚洲电影一区二区| 国产成人精品a视频| 最近更新的2019中文字幕| 亚洲免费福利| 国产视频一区二区三区四区| 中文字幕av亚洲精品一部二部| 亚洲欧美久久久久| 久久久不卡网国产精品一区| 日本三级黄色大片| 欧美成人精精品一区二区频| 麻豆电影在线播放| 91精品久久久久久久| 精品国产精品国产偷麻豆| 黄色一级片播放| 波多野结衣在线aⅴ中文字幕不卡| 手机在线免费看片| 欧美久久一二区| 91这里只有精品| 国产精品自拍网| 成人3d动漫在线观看| 成人免费xxxxx在线视频| 91视视频在线直接观看在线看网页在线看| 亚洲一区二区91| 亚洲成人免费在线视频| 久久一卡二卡| 国产精品免费看一区二区三区| 在线免费高清一区二区三区| 久久综合在线观看| 亚洲色图欧美激情| av小说天堂网| 欧美高清电影在线看| 亚洲精品影片| 国产va亚洲va在线va| 成人的网站免费观看| 天堂网一区二区三区| 亚洲精品少妇网址| 免费观看一级欧美片| 欧美在线视频二区| 免费av网站大全久久| 香蕉成人在线视频| 欧美一级欧美一级在线播放| 在线视频中文字幕第一页| 国产亚洲情侣一区二区无| 一本综合精品| 日韩av在线看免费观看| 欧美这里有精品| 看黄网站在线观看| 99久re热视频这里只有精品6| 精品91久久久久| 老鸭窝一区二区| 欧美伊人久久久久久久久影院| eeuss影院www在线播放| 91精品国产综合久久男男 | 亚洲欧美在线视频观看| 亚洲国产精品久久久久久久| 午夜精品久久久久久99热软件| 综合综合综合综合综合网| 中文字幕国产传媒| 亚洲色欲色欲www| 欧美一级淫片aaaaaa| 热久久免费国产视频| 99久久夜色精品国产亚洲狼| 国产成人精品一区二区三区在线观看| 婷婷国产在线综合| 成人欧美一区| www.久久草| 久久午夜电影| 草视频在线观看| 亚洲欧美在线第一页| 成人短视频软件网站大全app| 热99这里只有精品| 中文无字幕一区二区三区| 亚洲h视频在线观看| 日本欧美精品在线| 欧美日韩国产探花| 久久午夜福利电影| 亚洲精品一区二区三区99| 日韩av中字| 国产91在线亚洲| 欧美激情一区二区三区在线| 亚洲黄色一级大片| 国产精品亚洲аv天堂网| 在线精品一区二区| 欧美日韩黄色网| 亚洲人成在线观看| 久久影院资源站| 原创真实夫妻啪啪av| 在线观看91视频|