亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

shell腳本學習指南[六](Arnold Robbins & Nelson H.F. Beebe著)

2020-07-27 19:19:19
字體:
來源:轉載
供稿:網友

學shell到現在了,一直以為自己不會犯一個大家常說的非常二的問題,結果這本書最后的時候犯了個十分2的事,晚節不保?。。?!我在測試文件路徑下除了通配符*和?外還能用啥正則那樣的東西,結果就在$HOME下執行了rm .* 。。。好吧,蛋疼了一下午!還木找回任何一個配置文件。警示后人,千萬別使用rm試通配符!任何時候小心使用rm!


第十四章shell可移植性議題和擴展


可以先通讀這篇文章。
想寫出好的可移植性shell,不僅要了解各種shell版本間的差異,還要有很多編程技巧,比如盡量從環境變量中獲取需要的信息等。

第十五章安全的shell腳本:起點


安全性shell腳本的提示:
1、不要將當前目錄(點號)置于PATH下??蓤绦谐绦驊撝荒芊旁跇藴实南到y目錄下,將當前目錄放在PATH里,無疑是打開特洛伊木馬(Trojan Horse)的大門。
2、為bin目錄設置保護。確認$PATH下的每一個目錄都只有它的擁有者可以寫入,其余任何人都不能。用樣的道理也應該應用于bin目錄里所有的程序。
3、寫程序前,先想清除?;c時間想想你要做什么,該如何實行。不要一開始就在文字編輯器上寫。錯誤與失敗的優雅處理也應該設計在程序里。
4、應對所有輸入參數檢查其有效性。如果期待的是數字,那就驗證它是數字,并且是否在要求的范圍內。其他的需要也是這樣檢測。
5、對所有可返回錯誤的命令,檢查錯誤處理代碼。不在你預期內的失敗情況,很可能是有問題的強迫失敗,導致腳本出現不當的行為。例如,如果參數為NFS加載磁盤或面向字符的設備文件時,即便是以root的身份執行,也可能導致有些命令失敗。
6、不要信任傳進來的環境變量。如果它們被接下來的命令(如TZ、PATH、IFS等)使用時,請檢查并重設為已知的值。無論在什么情況下,最好的方式就是明確的設置自己需要的(如PATH只包含系統bin目錄,設置IFS為空格定位符和換行)。
7、從已知的地方開始。在腳本開始時,確切cd到已知目錄,這么一來,接下來任何相對路徑名稱才能指到已知位置。確認cd操作成功:cd app-dir || exit 1
8、使用syslog(8)保留審計跟蹤。記錄引用的日期與時間、username等,參見logger(1)的使用手冊。如果沒有logger,可建立一個函數保留日志文件:

復制代碼 代碼如下:

logger(){
printf "%s/n" "$*" >> /var/adm/logsysfile
}
logger "Run by user " $(id -un) "($USER) at " $(/bin/date)

9、當使用該輸入時,一定將用戶輸入引用起來。例如:"$1"與"$*",這么做可以防止居心不良的用戶輸入超出范圍的計算與執行。
10、勿在用戶輸入上使用eval。甚至在引用用戶輸入之后,也不要使用eval將它交給shell再處理。如果用戶讀取了你的腳本,發現你使用eval,就能很輕松的利用這個腳本進行任何破壞。
11、引用通配符展開的結果。你可以將空格、分號、反斜杠等放在文件名里,讓棘手的事情交給系統管理員處理。如果管理的腳本未引用文件名參數,此腳本將會造成系統的問題。
12、檢查用戶輸入是否有meta字符。如果使用eval或$(...)里的輸入,請檢查是否有像$或`這類的meta字符。
13、檢測你的代碼,并小心謹慎閱讀它。尋找是否有可被利用的漏洞與錯誤。把所有壞心眼的想法都考慮進去,小心研究你的代碼,試著找出破壞它的方式,再修正發現的問題。
14、留意競爭條件(race condition)攻擊者是不是可以在你腳本里的任兩個命令之間執行任意命令,這對安全性是否有危害?如果是,換個方式處理你的腳本。
15、對符號性連接心存懷疑。在chmod文件或是編輯文件時,檢查它是否真的是一個文件,而非連接到某個關鍵性系統文件的符號性連接(利用[ -L file ] 或 [ -h file ]檢測file是否為一符號性連接。
16、找其他人重新檢查你的程序,看看是否有問題。
17、盡可能用setgid而不要用setuid。這些術語稍后討論,簡之就是使用setgid能將損害范圍限制在某個組內。
18、使用新的用戶而不是root。如果你必須使用setuid訪問一組文件,請考慮建立一個新的用戶,非root的用戶做這件事并設置setuid給他。
19、盡可能限制使用setuid的代碼。盡可能讓setuid代碼減到最少。將它移到一個分開的程序,然后在大型腳本里需要時才引用它。無論如何,請做好代碼防護,好像腳本可以被任何人于任何地方引用那樣。
20、一個安全shell的開場白:
復制代碼 代碼如下:

IFS=' /t/n' #之前幾篇見過很多次
unset -f unalias #確保unalias不是一個函數
/unalias -a #unset all aliases and quote unalias so it's not alias-expanded
unset -f command #確保調用的command不是以函數
#獲得可靠的路徑前綴,處理getconf不可用的情況。
#get a reliable path prefix,handling case where getconf is not available.
SYSPATH="$(command -p getconf PATH 2>/dev/null))"
if [[ -z "$SYSPATH" ]];then
SYSPATH="/usr/bin:/bin"
fi
PATH="$SYSPATH:$PATH"

這段代碼使用了許多非POSIX的擴展,需要注意。

該書最后給出了如何編寫自己的shell程序的manual,和unix的文件和文件系統的介紹。至此該書通讀完畢。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产31久久久久久| 国产噜噜噜噜久久久久久久久| 欧美乱大交xxxxx| 欧美日本亚洲视频| 日韩中文字幕视频在线观看| 国产精品福利在线观看网址| 性欧美在线看片a免费观看| 亚洲码在线观看| 成人午夜在线影院| 91在线观看欧美日韩| 亚洲国产精品电影在线观看| 亚洲美腿欧美激情另类| 在线观看日韩专区| 精品国产一区二区三区久久| 91麻豆国产语对白在线观看| 国产精品高潮呻吟视频| 久久99精品视频一区97| 欧美日韩国产中文精品字幕自在自线| 欧美在线www| 国产一区二区黑人欧美xxxx| 欧美韩日一区二区| 亚洲天堂第一页| 欧美激情亚洲综合一区| 成人精品一区二区三区电影免费| 日韩电影免费观看在线| 久久国内精品一国内精品| 欧美性一区二区三区| 91网站免费观看| 久久久久久亚洲精品不卡| 亚洲国产美女久久久久| 中文字幕日韩欧美在线| 揄拍成人国产精品视频| 91在线免费观看网站| 亚洲成人av中文字幕| 国产成+人+综合+亚洲欧洲| 欧美日韩国内自拍| 中文字幕亚洲专区| 97视频人免费观看| 黑人巨大精品欧美一区二区三区| 欧美一性一乱一交一视频| 国产精品中文在线| 久久久久久久国产| 国产精品一区二区三区免费视频| 亚洲精品国精品久久99热| 国产精品福利小视频| 97成人精品区在线播放| 免费91在线视频| 国产人妖伪娘一区91| 欧美日韩色婷婷| 欧美性资源免费| 午夜免费日韩视频| 国产成人综合精品在线| 尤物yw午夜国产精品视频明星| 日韩三级成人av网| 国产精品入口尤物| 欧美国产一区二区三区| 97在线视频免费| 视频在线一区二区| 亚洲天堂第一页| 亚洲天堂网在线观看| 日韩电影大全免费观看2023年上| 精品调教chinesegay| 97国产成人精品视频| 久久精品99久久香蕉国产色戒| 亚洲一区二区三区sesese| 热99在线视频| 日韩在线视频线视频免费网站| 亚洲成人网在线| 精品无码久久久久久国产| 日韩精品免费在线视频观看| 日韩美女在线观看| 亚洲欧美中文日韩在线| 国产欧美精品一区二区三区介绍| 91麻豆国产语对白在线观看| 欧美激情一区二区三级高清视频| 国语自产在线不卡| 亚洲成人精品视频| 国产精品久久久久久久久免费看| 国产日韩精品一区二区| 欧美伦理91i| 欧美精品免费在线观看| 亚洲欧美999| 国产精品美女呻吟| xxxx欧美18另类的高清| 亚洲精品在线不卡| 日韩欧美国产骚| 日韩中文字幕在线看| 国产精品成人一区| 欧美日韩性生活视频| 欧美性高跟鞋xxxxhd| 国产精品视频午夜| 久久久噜久噜久久综合| 一区二区三欧美| 国产精品福利久久久| 午夜精品久久久久久久99黑人| 欧美激情精品久久久久久大尺度| 91中文在线视频| 日韩欧美国产骚| 欧美大成色www永久网站婷| 中文字幕成人精品久久不卡| 亚洲色图15p| 精品自拍视频在线观看| 国产精品旅馆在线| 国产专区欧美专区| 永久免费看mv网站入口亚洲| 久久理论片午夜琪琪电影网| 欧美精品亚州精品| 黑人欧美xxxx| 久久精品影视伊人网| 91精品在线播放| 日本久久中文字幕| 日韩视频免费中文字幕| 国产精品久久久久久影视| 国产精品一区二区av影院萌芽| 亚洲xxxxx性| 久久精品人人做人人爽| 国产精品www色诱视频| 久久成人一区二区| 久久偷看各类女兵18女厕嘘嘘| 国产精品久久久久久久久久ktv| 日韩中文字幕网站| 欧美日韩国产123| 91免费版网站入口| 日本一区二区三区在线播放| 久久精品视频在线播放| 国产精品成人v| 亚洲一区二区三区香蕉| 亚洲欧美色图片| 中文字幕亚洲欧美日韩在线不卡| 国产精品青青在线观看爽香蕉| 性金发美女69hd大尺寸| 色妞久久福利网| 亚洲第一精品自拍| 日韩一区二区在线视频| 久久久久久久久91| 狠狠色噜噜狠狠狠狠97| 国产精品美女999| 国产精品亚洲网站| 日韩欧美在线字幕| 国产精品视频男人的天堂| 高清欧美性猛交xxxx黑人猛交| 欧美精品福利在线| 亚洲人成毛片在线播放| 日韩精品视频中文在线观看| 日韩在线观看免费高清| 最近2019好看的中文字幕免费| 久久五月天综合| 自拍亚洲一区欧美另类| 欧美在线观看一区二区三区| 欧美俄罗斯乱妇| 另类美女黄大片| 日本电影亚洲天堂| 亚洲新声在线观看| 精品视频一区在线视频| 17婷婷久久www| 欧美一区二区三区图| 欧美区二区三区| 国产欧美一区二区三区视频| 欧美午夜激情在线| 亚洲国产精品999| 欧美激情性做爰免费视频| 日韩美女视频免费在线观看| 日韩av免费在线看| 51精品国产黑色丝袜高跟鞋|