2023年系統(tǒng)管理員安全_第1頁
2023年系統(tǒng)管理員安全_第2頁
2023年系統(tǒng)管理員安全_第3頁
2023年系統(tǒng)管理員安全_第4頁
2023年系統(tǒng)管理員安全_第5頁
已閱讀5頁,還剩87頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

系統(tǒng)管理員安全本文從系統(tǒng)管理員的角度討論安全問題.系統(tǒng)管理員是管理系統(tǒng)的人:啟動系統(tǒng),停止系統(tǒng)運營,安裝新軟件,增長新用戶,刪除老用戶,以及完畢保持系統(tǒng)發(fā)展和運營的平常事務(wù)工作.1.安全管理安全管理重要分為四個方面:(1)防止未授權(quán)存取:這是計算機安全最重要的問題:未被使用系統(tǒng)的人進(jìn)入系統(tǒng).用戶意識,良好的口令管理(由系統(tǒng)管理員和用戶雙方配合),登錄活動記錄和報告,用戶和網(wǎng)絡(luò)活動的周期檢查,這些都是防止未授權(quán)存取的關(guān)鍵.(2)防止泄密:這也是計算機安全的一個重要問題.防止已授權(quán)或未授權(quán)的用戶互相存取互相的重要信息.文獻(xiàn)系統(tǒng)查帳,su登錄和報告,用戶意識,加密都是防止泄密的關(guān)鍵.(3)防止用戶拒絕系統(tǒng)的管理:這一方面的安全應(yīng)由操作系統(tǒng)來完畢.一個系統(tǒng)不應(yīng)被一個故意試圖使用過多資源的用戶損害.不幸的是,UNIX不能很好地限制用戶對資源的使用,一個用戶可以使用文獻(xiàn)系統(tǒng)的整個磁盤空間,而UNIX基本不能阻止用戶這樣做.系統(tǒng)管理員最佳用PS命令,記帳程序df和du周期地檢查系統(tǒng).查出過多占用CUP的進(jìn)程和大量占用磁盤的文獻(xiàn).(4)防止丟失系統(tǒng)的完整性:這一安全面與一個好系統(tǒng)管理員的實際工作(例如:周期地備份文獻(xiàn)系統(tǒng),系統(tǒng)崩潰后運營fsck檢查,修復(fù)文獻(xiàn)系統(tǒng),當(dāng)有新用戶時,檢測該用戶是否也許使系統(tǒng)崩潰的軟件)和保持一個可靠的操作系統(tǒng)有關(guān)(即用戶不能經(jīng)常性地使系統(tǒng)崩潰).本文其余部分重要涉及前兩個問題,第三個問題在"安全查帳"一節(jié)討論.2.超級用戶一些系統(tǒng)管理命令只能由超級用戶運營.超級用戶擁有其他用戶所沒有的特權(quán),超級用戶不管文獻(xiàn)存取許可方式如何,都可以讀,寫任何文獻(xiàn),運營任何程序.系統(tǒng)管理員通常使用命令:/bin/su或以root進(jìn)入系統(tǒng)從而成為超級用戶.在后面文章中以#表達(dá)應(yīng)敲入必須由超級用戶運營的命令,用$表達(dá)應(yīng)敲入由所有其他用戶運營的命令.3.文獻(xiàn)系統(tǒng)安全(1)UNIX文獻(xiàn)系統(tǒng)概述UNIX文獻(xiàn)系統(tǒng)是UNIX系統(tǒng)的心臟部分,提供了層次結(jié)構(gòu)的目錄和文獻(xiàn).文件系統(tǒng)將磁盤空間劃分為每1024個字節(jié)一組,稱為塊(block)(也有用512字節(jié)為一塊的,如:SCOXENIX).編號從0到整個磁盤的最大塊數(shù).所有塊可劃分為四個部分,塊0稱為引導(dǎo)塊,文獻(xiàn)系統(tǒng)不用該塊;塊1稱為專用塊,專用塊具有許多信息,其中有磁盤大小和所有塊的其它兩部分的大?。畯膲K2開始是i節(jié)點表,i節(jié)點表中具有i節(jié)點,表的塊數(shù)是可變的,后面將做討論.i節(jié)點表之后是空閑存儲塊(數(shù)據(jù)存儲塊),可用于存放文獻(xiàn)內(nèi)容.文獻(xiàn)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)是十分不同的,邏輯結(jié)構(gòu)是用戶敲入cat命令后所看到的文獻(xiàn),用戶可得到表達(dá)文獻(xiàn)內(nèi)容的字符流.物理結(jié)構(gòu)是文獻(xiàn)事實上如何存放在磁盤上的存儲格式.用戶認(rèn)為自己的文獻(xiàn)是邊疆的字符流,但實際上文獻(xiàn)也許并不是以邊疆的方式存放在磁盤上的,長于一塊的文獻(xiàn)通常將分散地存放在盤上.然而當(dāng)用戶存取文獻(xiàn)時,UNIX文獻(xiàn)系統(tǒng)將以對的的順序取各塊,給用戶提供文獻(xiàn)的邏輯結(jié)構(gòu).當(dāng)然,在UNIX系統(tǒng)的某處一定會有一個表,告訴文獻(xiàn)系統(tǒng)如何將物理結(jié)構(gòu)轉(zhuǎn)換為邏輯結(jié)構(gòu).這就涉及到i節(jié)點了.i節(jié)點是一個64字節(jié)長的表,具有有關(guān)一個文獻(xiàn)的信息,其中有文獻(xiàn)大小,文獻(xiàn)所有者,文獻(xiàn)存取許可方式,以及文獻(xiàn)為普通文獻(xiàn),目錄文獻(xiàn)還是特別文獻(xiàn)等.在i節(jié)點中最重要的一項是磁盤地址表.該表中有13個塊號.前10個塊號是文獻(xiàn)前10塊的存放地址.這10個塊號能給出一個至多10塊長的文獻(xiàn)的邏輯結(jié)構(gòu),文獻(xiàn)將以塊號在磁盤地址表中出現(xiàn)的順序依次取相應(yīng)的塊.當(dāng)文獻(xiàn)長于10塊時又如何呢?磁盤地址表中的第十一項給出一個塊號,這個塊號指出的塊中具有256個塊號,至此,這種方法滿足了至多長于266塊的文件(272,384字節(jié)).假如文獻(xiàn)大于266塊,磁盤地址表的第十二項給出一個塊號,這個塊號指出的塊中具有256個塊號,這256個塊號的每一個塊號又指出一塊,塊中含256個塊號,這些塊號才用于取文獻(xiàn)的內(nèi)容.磁盤地址中和第十三項索引尋址方式與第十二項類似,只是多一級間接索引.這樣,在UNIX系統(tǒng)中,文獻(xiàn)的最大長度是16,842,762塊,即17,246,988,288字節(jié),有幸是是UNIX系統(tǒng)對文獻(xiàn)的最大長度(一般為1到2M字節(jié))加了更實際的限制,使用戶不會無意中建立一個用完整個磁盤窨所有塊的文獻(xiàn).文獻(xiàn)系統(tǒng)將文獻(xiàn)名轉(zhuǎn)換為i節(jié)點的方法事實上相稱簡樸.一個目錄事實上是一個具有目錄表的文獻(xiàn):對于目錄中的每個文獻(xiàn),在目錄表中有一個入口項,入口項中具有文獻(xiàn)名和與文獻(xiàn)相應(yīng)的i節(jié)點號.當(dāng)用戶敲入catxxx時,文獻(xiàn)系統(tǒng)就在當(dāng)前目錄表中查找名為xxx的入口項,得到與文獻(xiàn)xxx相應(yīng)的i節(jié)點號,然后開始取具有文獻(xiàn)xxx的內(nèi)容的塊.(2)設(shè)備文獻(xiàn)UNIX系統(tǒng)與邊在本系統(tǒng)上的各種設(shè)備之間的通訊,通過特別文獻(xiàn)來實現(xiàn),就程序而言,磁盤是文獻(xiàn),MODEM是文獻(xiàn),甚至內(nèi)存也是文獻(xiàn).所有連接到系統(tǒng)上的設(shè)備都在/dev目錄中有一個文獻(xiàn)與其相應(yīng).當(dāng)在這些文獻(xiàn)上執(zhí)行I/O操作時,由UNIX系統(tǒng)將I/O操作轉(zhuǎn)換成實際設(shè)備的動作.例如,文獻(xiàn)/dev/mem是系統(tǒng)的內(nèi)存,假如cat這個文獻(xiàn),事實上是在終端顯示系統(tǒng)的內(nèi)存.為了安全起見,這個文件對普通用戶是不可讀的.由于在任一給定期間,內(nèi)存區(qū)也許具有用戶登錄口令或運營程序的口令,某部分文獻(xiàn)的編輯緩沖區(qū),緩沖區(qū)也許具有用ed-x命令解密后的文本,以及用戶不愿讓其別人存取的種種信息.在/dev中的文獻(xiàn)通常稱為設(shè)備文獻(xiàn),用ls/dev命令可以看看系統(tǒng)中的一些設(shè)備:acuo呼喊自動撥號器console系統(tǒng)控制臺dsknn塊方式操作磁盤分區(qū)kmem核心內(nèi)存mem內(nèi)存lp打印機mto塊方式操作磁帶rdsknn流方式操作的磁盤分區(qū)rmto流方式操作的磁帶swap互換區(qū)syscon系統(tǒng)終端ttynn終端口x25網(wǎng)絡(luò)端口等等(3)/etc/mknod命令用于建立設(shè)備文獻(xiàn).只有root能使用這個命令建立設(shè)備文獻(xiàn).其參數(shù)是文件名,字母c或b分別代表字符特別文獻(xiàn)或塊特別文獻(xiàn),主設(shè)備號,次設(shè)備號.塊特別文獻(xiàn)是像磁帶,磁盤這樣一些以塊為單位存取數(shù)據(jù)的設(shè)備.字符特別文獻(xiàn)是如像終端,打印機,MODEM,或者其它任何與系統(tǒng)通訊時,一次傳輸一個字符的設(shè)備,涉及模仿對磁盤進(jìn)行字符方式存取的磁盤驅(qū)動器.主設(shè)備號指定了系統(tǒng)子程序(設(shè)備驅(qū)動程序),當(dāng)在設(shè)備上執(zhí)行I/O時,系統(tǒng)將調(diào)用這個驅(qū)動程序.調(diào)用設(shè)備驅(qū)動程序時,次設(shè)備號將傳遞給該驅(qū)動程序(次設(shè)備規(guī)定具體的磁盤驅(qū)動器,帶驅(qū)動器,信號線編號,或磁盤分區(qū)).每種類型的設(shè)備一般都有自己的設(shè)備驅(qū)動程序.文獻(xiàn)系統(tǒng)將主設(shè)備號和次設(shè)備號存放在i節(jié)點中的磁盤地址表內(nèi),所以沒有磁盤空間分派給設(shè)備文獻(xiàn)(除i節(jié)點自身占用的磁盤區(qū)外).當(dāng)程序試圖在設(shè)備文獻(xiàn)上執(zhí)行I/O操作時,系統(tǒng)辨認(rèn)出該文獻(xiàn)是一個特別文獻(xiàn),并調(diào)用由主設(shè)備號指定的設(shè)備驅(qū)動程序,次設(shè)備號作為調(diào)用設(shè)備驅(qū)動程序的參數(shù).(4)安全考慮將設(shè)備解決成文獻(xiàn),使得UNIX程序獨立于設(shè)備,即程序不必一定要了解正使用的設(shè)備的任何特性,存取設(shè)備也不需要記錄長度,塊大小,傳輸速度,網(wǎng)絡(luò)協(xié)議等這樣一些信息,所有煩人的細(xì)節(jié)由設(shè)備驅(qū)動程序去關(guān)心考慮,要存取設(shè)備,程序只須打開設(shè)備文獻(xiàn),然后作為普通的UNIX文獻(xiàn)來使用.從安全的觀點來看這樣解決很好,由于任何設(shè)備上進(jìn)行的I/O操作只通過了少量的渠道(即設(shè)備文獻(xiàn)).用戶不能直接地存取設(shè)備.所以假如對的地設(shè)立了磁盤分區(qū)的存取許可,用戶就只能通過UNIX文獻(xiàn)系統(tǒng)存取磁盤.文獻(xiàn)系統(tǒng)有內(nèi)部安全機制(文獻(xiàn)許可).不幸的是,假如磁盤分區(qū)設(shè)備得不對的,任何用戶都可以寫一個程序讀磁盤分區(qū)中的每個文獻(xiàn),作法很簡樸:讀一i節(jié)點,然后以磁盤地址表中塊號出現(xiàn)的順序,依次讀這些塊號指出的存有文獻(xiàn)內(nèi)容的塊.故除了root以外,決不要使盤分區(qū)對任何人可寫.由于所有者,文獻(xiàn)存取許可方式這樣一些信息存放于i節(jié)點中,任何人只要具有已安裝分區(qū)的寫許可,就能設(shè)立任何文獻(xiàn)的SUID許可,而不管文獻(xiàn)的所有者是誰,也不必用chmod()命令,還可避過系統(tǒng)建立的安全檢查.以上所述對內(nèi)存文獻(xiàn)mem,kmem和對換文獻(xiàn)swap也是同樣的.這些文獻(xiàn)具有用戶信息,一個"耐心"的程序可以將用戶信息提取出來.要避免磁盤分區(qū)(以及其它設(shè)備)可讀可寫,應(yīng)當(dāng)在建立設(shè)備文獻(xiàn)前先用umask命令設(shè)立文獻(xiàn)建立屏蔽值.一般情況下,UNIX系統(tǒng)上的終端口對任何人都是可寫的,從而使用戶可以用write命令發(fā)送信息.雖然write命令易引起安全面的問題,但大多數(shù)用戶覺得用write得到其他用戶的信息很方便,所以系統(tǒng)將終端設(shè)備的存取許可設(shè)置成對所有用戶可寫./dev目錄應(yīng)當(dāng)是755存取許可方式,且屬root所有.不允許除root外的任何用戶讀或?qū)懕P分區(qū)的原則有一例外,即一些程序(通常是數(shù)據(jù)庫系統(tǒng))規(guī)定對磁盤分區(qū)直接存取,解決這個問題的經(jīng)驗的盤分區(qū)應(yīng)當(dāng)由這種程序?qū)S?不安裝文獻(xiàn)系統(tǒng)),并且應(yīng)當(dāng)告知使用這種程序的用戶,文獻(xiàn)安全保護(hù)將由程序自己而不是UNIX文獻(xiàn)系統(tǒng)完畢.(5)find命令find命令用于搜索目錄樹,并對目錄樹上的所有文獻(xiàn)執(zhí)行某種操作,參數(shù)是目錄名表(指出從哪些起點開始搜索),還可給出一個或多個選項,規(guī)定對每個文獻(xiàn)執(zhí)行什么操作.find.-print將列出當(dāng)前工作目錄下的目錄樹的每一個文獻(xiàn).find/-userbob-print將列出在系統(tǒng)中可找到的屬于bob用戶的所有文獻(xiàn).find/usr/bob-perm666-print將列出/usr/bob目錄樹下所有存取許可為666的文獻(xiàn).若將666改為-666則將列出所有具有包含了666在內(nèi)的存取許可方式的文獻(xiàn)(如777).find/usr/bob-typeb-print將列出/usr/bob目錄樹下所有塊特別文件(c為字符特別文獻(xiàn)).find/-userroot-perm-4000-execls-l{}\;是一個較復(fù)雜一點的命令,-execCOMMAND\;允許對所找到的每個文獻(xiàn)運營指定的命令COMMAND.若COMMAND中具有{},則{}將由find所找到的文獻(xiàn)名替換.COMMAND必須以\;結(jié)束.以上舉例介紹find的用法,各選項可組合使用以達(dá)成更強的功能.(6)secure程序系統(tǒng)管理員應(yīng)當(dāng)做一個程序以定期檢查系統(tǒng)中的各個系統(tǒng)文獻(xiàn),涉及檢查設(shè)備文獻(xiàn)和SUID,SGID程序,特別要注意檢查SUID,SGID程序,檢查/etc/passwd和/etc/group文獻(xiàn),尋找久未登錄的戶頭和校驗各重要文獻(xiàn)是否被修改.(源程序清單將在此后發(fā)表)(7)ncheck命令用于檢查文獻(xiàn)系統(tǒng),只用一個磁盤分區(qū)名作為參數(shù),將列出i節(jié)點號及相應(yīng)的文獻(xiàn)名.i節(jié)點相同的文獻(xiàn)為建鏈文獻(xiàn).注意:所列出的清單文獻(xiàn)名與mount命令的第一個域相同的文獻(xiàn)名前部分將不會列出來.由于是做文獻(xiàn)系統(tǒng)內(nèi)部的檢查,ncheck并不知道文獻(xiàn)系統(tǒng)安裝點以上部分的目錄.也可用此命令來搜索文獻(xiàn)系統(tǒng)中所有的SUID和SGID程序和設(shè)備文獻(xiàn),使用-s選項來完畢此項功能.(8)安裝和拆卸文獻(xiàn)系統(tǒng)UNIX文獻(xiàn)系統(tǒng)是可安裝的,這意味著每個文獻(xiàn)系統(tǒng)可以連接到整個目錄樹的任意節(jié)點上(根目錄總是被安裝上的).安裝文獻(xiàn)系統(tǒng)的目錄稱為安裝點./etc/mount命令用于安裝文獻(xiàn)系統(tǒng),用這條命令可將文獻(xiàn)系統(tǒng)安裝在現(xiàn)有目錄結(jié)構(gòu)的任意處.安裝文獻(xiàn)系統(tǒng)時,安裝點的文獻(xiàn)和目錄都是不可存取的,因此未安裝文獻(xiàn)系統(tǒng)時,不要將文獻(xiàn)存入安裝點目錄.文獻(xiàn)系統(tǒng)安裝后,安裝點的存取許可方式和所有者將改變?yōu)樗惭b的文獻(xiàn)根目錄的許可方式和所有者.安裝文獻(xiàn)系統(tǒng)時要小心:安裝點的屬性會改變!還要注意新建的文獻(xiàn),除非新文獻(xiàn)系統(tǒng)是由標(biāo)準(zhǔn)文獻(xiàn)建立的,系統(tǒng)標(biāo)準(zhǔn)文獻(xiàn)會設(shè)立適當(dāng)?shù)拇嫒≡S可方式,否則新文獻(xiàn)系統(tǒng)的存取許可將是777!可用-r選項將文獻(xiàn)系統(tǒng)安裝成只讀文獻(xiàn)系統(tǒng).需要寫保護(hù)的帶驅(qū)動器和磁盤應(yīng)當(dāng)以這種方式來安裝.不帶任何參數(shù)的/etc/mount可獲得系統(tǒng)中所安裝的文獻(xiàn)系統(tǒng)的有關(guān)信息.涉及:文獻(xiàn)系統(tǒng)被安裝的安裝點目錄,相應(yīng)/dev中的哪個設(shè)備,只讀或可讀寫,安裝時間和日期等.從安全的觀點來講,可安裝系統(tǒng)的危險來自用戶也許請求系統(tǒng)管理員為其安裝用戶自己的文獻(xiàn)系統(tǒng).假如安裝了用戶的文獻(xiàn)系統(tǒng),則應(yīng)在允許用戶存取文獻(xiàn)系統(tǒng)前,先掃描用戶的文獻(xiàn)系統(tǒng),搜索SUID/SGID程序和設(shè)備文獻(xiàn).在除了root外任何人不能執(zhí)行的目錄中安裝文獻(xiàn)系統(tǒng),用find命令或secure列出可疑文獻(xiàn),刪除不屬用戶所有的文獻(xiàn)的SUID/SGID許可.用戶的文獻(xiàn)系統(tǒng)用完后,可用umount命令卸下文獻(xiàn)系統(tǒng).并將安裝點目錄的所有者改回root,存取許可改為755.(9)系統(tǒng)目錄和文獻(xiàn)UNIX系統(tǒng)中有許多文獻(xiàn)不允許用戶寫,如:/bin,/usr/bin,/usr/lbin,/etc/passwd,/usr/lib/crontab,/unix,/etc/rc,/etc/inittab這樣一些文獻(xiàn)和目錄(大多數(shù)的系統(tǒng)目錄),可寫的目錄允許移動文獻(xiàn),會引起安全問題.系統(tǒng)管理員應(yīng)經(jīng)常檢查系統(tǒng)文獻(xiàn)和目錄的許可權(quán)限和所有者.可做一個程序根據(jù)系統(tǒng)提供的規(guī)則文獻(xiàn)(在/etc/permlist文獻(xiàn)中)所描述的文獻(xiàn)所有者和許可權(quán)規(guī)則檢查各文獻(xiàn).(源程序清單將在此后發(fā)表)注意:假如系統(tǒng)的安全管理不好,或系統(tǒng)是新安裝的,其安全程序不夠高,可以用make方式在安全強的系統(tǒng)上運營上述程序,將許可規(guī)則文獻(xiàn)拷貝到新系統(tǒng)來,再以設(shè)立方式在新系統(tǒng)上運營上述程序,就可提高本系統(tǒng)的安全程序.但要記住,兩個系統(tǒng)必須運營相同的UNIX系統(tǒng)版本.4.作為root運營的程序在UNIX系統(tǒng)中,有些程序由系統(tǒng)作為root進(jìn)程運營.這些程序并不總是具有SUID許可,由于其不少程序僅由root運營,系統(tǒng)管理員需要清楚這些程序做什么,以及這些程序還將運營其它什么程序.(1)啟動系統(tǒng)當(dāng)某些UNIX系統(tǒng)(如SCOUNIX/XENIX)啟動時,是以被稱為單用戶的方式運行,在這種方式中普通用戶不能登錄,唯有的進(jìn)程是init,swapper,以及一些由系統(tǒng)管理員從控制臺運營的進(jìn)程.UNIX系統(tǒng)的單用戶方式啟動,使系統(tǒng)管理員能在允許普通用戶登錄以前,先檢查系統(tǒng)操作,保證系統(tǒng)一切正常,當(dāng)系統(tǒng)處在單用戶方式時,控制臺作為超級用戶,命令揭示是"#",有些UNIX系統(tǒng)不要確認(rèn)超級用戶口令就認(rèn)可控制臺是root,給出#提醒符.這就也許成為一個安全問題.(2)init進(jìn)程UNIX系統(tǒng)總是以某種方式或稱為某種級運營,系統(tǒng)有若干種運營級,這些運營級由init進(jìn)程控制.UNIX系統(tǒng)啟動時以單用戶方式運營,也叫1級或S級.對于其他用戶登錄進(jìn)入系統(tǒng),UNIX有一種多用戶運營方式,也叫2級.init進(jìn)程控制系統(tǒng)運營級,它讀入文獻(xiàn)/etc/inittab,該文獻(xiàn)具體地規(guī)定了哪些進(jìn)程在哪一級運營.當(dāng)root敲入initn(數(shù)字),系統(tǒng)就進(jìn)入n級.init讀該文獻(xiàn)以擬定終止哪些進(jìn)程,啟動哪些進(jìn)程.有效的運營級的數(shù)值是從0到6與s.注意:由init建立的進(jìn)程以UID為0運營(root)從/etc/inittab運營的程序也作為root運營,所以系統(tǒng)管理員要保證自己知道/etc/inittab中的程序做什么工作,保證這些程序以及這些程序所在的目錄直到/和/etc/inittab除root外無人可寫.(3)進(jìn)入多用戶當(dāng)UNIX系統(tǒng)進(jìn)入多用戶方式時,將寢化一系列事件,接著開始執(zhí)行gettys,允許其他用戶登錄進(jìn)入系統(tǒng).假如再看看/etc/inittab文獻(xiàn),會看到gettys定義在運營級2,至少三個shell程序/etc/brc,/etc/bcheckrc,/etc/rc*也定義在運營級2.這些程序都在gettys啟動前運營.這些shell程序作為root運營,也不能僅對root可寫還應(yīng)當(dāng)檢查shell程序運營的命令,由于這些命令也將作為root運營.(4)shutdown命令用shutdown命令關(guān)系統(tǒng),shutdownshell程序發(fā)送警告告知所有用戶離開系統(tǒng),在"給定的期限時間"到了后,就終止進(jìn)程,拆卸文獻(xiàn)系統(tǒng),進(jìn)入單用戶方式或關(guān)機狀態(tài).一旦進(jìn)入單用戶方式,所有的gettys停止運營,用戶再不能登錄.進(jìn)入關(guān)機狀態(tài)后可將系統(tǒng)關(guān)電.shutdown僅能由作為root登錄的用戶從系統(tǒng)控制臺上運營.所以任何的shutdown運營的命令僅能對root可寫.(5)系統(tǒng)V的cron程序cron在UNIX系統(tǒng)是多用戶方式時運營,根據(jù)規(guī)定的時間安排執(zhí)行指定的命令,每隔一分鐘檢查一次文獻(xiàn)/usr/lib/crontab,尋找是否有應(yīng)當(dāng)運營的程序?假如找到要運營的程序,就運營該程序,否則睡眠等待一分鐘.實際的/usr/lib/crontab用于根據(jù)全天的規(guī)則時間表運營程序,也可在夜晚運營白天不愿運營怕減少其他用戶速度的程序.通常由cron運營的程序是如記帳,存文獻(xiàn)這樣的程序.cron一般在系統(tǒng)進(jìn)入多用戶后由/etc/rc啟動,當(dāng)shutdown運營killall命令時便終止運營.由cron運營的程序作為root,所以應(yīng)當(dāng)注意放什么程序在crontab中,還要保證/usr/lib/crontab和該表中列出的任何程序?qū)θ魏稳瞬豢蓪?假如用戶需要由cron執(zhí)行一個程序,系統(tǒng)管理員可用su命令在crontab表中建立一個入口,使用戶的程序不能獲得root的權(quán)限.(6)系統(tǒng)V版本2之后的cron程序在系統(tǒng)V版本2中,cron被修改成允許用戶建立自己的crontab入口,/usr/lib/crontab文獻(xiàn)不再存在,由目錄/usr/spool/cron/crontabs中的文獻(xiàn)代替.這些文獻(xiàn)的格式與crontab相同,但每個文獻(xiàn)與系統(tǒng)中的一個用戶相應(yīng),并以某用戶的名義由cron運營.假如想限制能建立crontab的用戶,可在文獻(xiàn)/usr/lib/cron/cron.allow文獻(xiàn)中列出允許運營crontab命令的用戶.任何未列于該文獻(xiàn)的用戶不能運營crontab.反之,若更樂意列出不允許運營crontab命令的用戶,則可將他們列入/usr/lib/cron/cron.deny文獻(xiàn)中,未列于該文獻(xiàn)的其他用戶將被允許建立crontab.注意:若兩個文獻(xiàn)都存在,系統(tǒng)將使用cron.allow,忽略cron.deny.假如兩個文獻(xiàn)都不存在,則只有root可運營crontab.所以,若要允許系統(tǒng)中的所有用戶都可運營crontab命令,應(yīng)當(dāng)建立一個空的cron.deny文獻(xiàn),假如cron.allow也存在,則刪除該文獻(xiàn).這個版本的cron命令的安全限度比前一個高,由于用戶只能看自己的crontab,系統(tǒng)管理員也不必緊張其他用戶的程序是否會作為root運營,由于允許每個系統(tǒng)登錄用戶有自己的crontab,也簡化了對程序必須由cron運營,但不必作為root運營的系統(tǒng)程序的解決.必須保證root的crontab文獻(xiàn)僅對root可寫,并且該文獻(xiàn)所在的目錄及所有的父目錄也僅對root可寫.(7)/etc/profile每當(dāng)用戶(涉及root在內(nèi))登錄時,由shell執(zhí)行/etc/profile文獻(xiàn),應(yīng)保證這個文獻(xiàn)以及從這個文獻(xiàn)運營的程序和命令都僅對root可寫.5./etc/passwd文獻(xiàn)/etc/passwd文獻(xiàn)是UNIX安全的關(guān)鍵文獻(xiàn)之一.該文獻(xiàn)用于用戶登錄時校驗用戶的口令,當(dāng)然應(yīng)當(dāng)僅對root可寫.文獻(xiàn)中每行的一般格式為:LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL每行的頭兩項是登錄名和加密后的口令,后面的兩個數(shù)是UID和GID,接著的一項是系統(tǒng)管理員想寫入的有關(guān)該用戶的任何信息,最后兩項是兩個途徑名:一個是分派給用戶的HOME目錄,第二個是用戶登錄后將執(zhí)行的shell(若為空格則缺省為/bin/sh).(1)口令時效/etc/passwd文獻(xiàn)的格式使系統(tǒng)管理員能規(guī)定用戶定期地改變他們的口令.在口令文獻(xiàn)中可以看到,有些加密后的口令有逗號,逗號后有幾個字符和一個冒號.如:steve:xyDfccTrt180x,M.y8:0:0:admin:/:/bin/shrestrict:pomJk109Jky41,.1:0:0:admin:/:/bin/shpat:xmotTVoyumjls:0:0:admin:/:/bin/sh可以看到,steve的口令逗號后有4個字符,restrict有2個,pat沒有逗號.逗號后第一個字符是口令有效期的最大周數(shù),第二個字符決定了用戶再次修改口信之前,原口令應(yīng)使用的最小周數(shù)(這就防止了用戶改了新口令后立刻又改回成老口令).其余字符表白口令最新修改時間.要能讀懂口令中逗號后的信息,必須一方面知道如何用passwd_esc計數(shù),計數(shù)的方法是:.=0/=10-9=2-11A-Z=12-37a-z=38-63系統(tǒng)管理員必須將前兩個字符放進(jìn)/etc/passwd文獻(xiàn),以規(guī)定用戶定期的修改口令,此外兩個字符當(dāng)用戶修改口令時,由passwd命令填入.注意:若想讓用戶修改口令,可在最后一次口令被修改時,放兩個".",則下一次用戶登錄時將被規(guī)定修改自己的口令.有兩種特殊情況:.最大周數(shù)(第一個字符)小于最小周數(shù)(第二個字符),則不允許用戶修改口令,僅超級用戶可以修改用戶的口令..第一個字符和第二個字符都是".",這時用戶下次登錄時被規(guī)定修改口令,修改口令后,passwd命令將"."刪除,此后再不會規(guī)定用戶修改口令.(2)UID和GID/etc/passwd中UID信息很重要,系統(tǒng)使用UID而不是登錄名區(qū)別用戶.一般來說,用戶的UID應(yīng)當(dāng)是獨一無二的,其他用戶不應(yīng)當(dāng)有相同的UID數(shù)值.根據(jù)慣例,從0到99的UID保存用作系統(tǒng)用戶的UID(root,bin,uucp等).假如在/etc/passwd文獻(xiàn)中有兩個不同的入口項有相同的UID,則這兩個用戶對互相的文獻(xiàn)具有相同的存取權(quán)限.6./etc/group文獻(xiàn)/etc/group文獻(xiàn)具有關(guān)于小組的信息,/etc/passwd中的每個GID在本文獻(xiàn)中應(yīng)當(dāng)有相應(yīng)的入口項,入口項中列出了小組名和小組中的用戶.這樣可方便地了解每個小組的用戶,否則必須根據(jù)GID在/etc/passwd文獻(xiàn)中從頭至尾地尋找同組用戶./etc/group文獻(xiàn)對小組的許可權(quán)限的控制并不是必要的,由于系統(tǒng)用UID,GID(取自/etc/passwd)決定文獻(xiàn)存取權(quán)限,即使/etc/group文獻(xiàn)不存在于系統(tǒng)中,具有相同的GID用戶也可以小組的存取許可權(quán)限共享文獻(xiàn).小組就像登錄用戶同樣可以有口令.假如/etc/group文獻(xiàn)入口項的第二個域為非空,則將被認(rèn)為是加密口令,newgrp命令將規(guī)定用戶給出口令,然后將口令加密,再與該域的加密口令比較.給小組建立口令一般不是個好作法.第一,假如小組內(nèi)共享文獻(xiàn),若有某人猜著小組口令,則該組的所有用戶的文獻(xiàn)就也許泄漏;另一方面,管理小組口令很費事,由于對于小組沒有類似的passwd命令.可用/usr/lib/makekey生成一個口令寫入/etc/group.以下情況必須建立新組:(1)也許要增長新用戶,該用戶不屬于任何一個現(xiàn)有的小組.(2)有的用戶也許時常需要獨自為一個小組.(3)有的用戶也許有一個SGID程序,需要獨自為一個小組.(4)有時也許要安裝運營SGID的軟件系統(tǒng),該軟件系統(tǒng)需要建立一個新組.要增長一個新組,必須編輯該文獻(xiàn),為新組加一個入口項.由于用戶登錄時,系統(tǒng)從/etc/passwd文獻(xiàn)中取GID,而不是從/etc/group中取GID,所以group文獻(xiàn)和口令文獻(xiàn)應(yīng)當(dāng)具有一致性.對于一個用戶的小組,UID和GID應(yīng)當(dāng)是相同的.多用戶小組的GID應(yīng)當(dāng)不同于任何用戶的UID,一般為5位數(shù),這樣在查看/etc/passwd文獻(xiàn)時,就可根據(jù)5位數(shù)據(jù)的GID辨認(rèn)多用戶小組,這將減少增長新組,新用戶時也許產(chǎn)生的混淆.7.增長,刪除,移走用戶(1)增長用戶增長用戶有三個過程:.在/etc/passwd文獻(xiàn)中寫入新用戶的入口項..為新登錄用戶建立一個HOME目錄..在/etc/group中為新用戶增長一個入口項.在/etc/passwd文獻(xiàn)中寫入新的入口項時,口令部分可先設(shè)立為NOLOGIN,以免有人做為此新用戶登錄.在修改文獻(xiàn)前,應(yīng)mkdir/etc/ptmp,以免別人同時修改此文獻(xiàn).新用戶一般獨立為一個新組,GID號與UID號相同(除非他要加入目前已存在的一個新組),UID號必須和其別人不同,HOME目錄一般設(shè)立在/usr或/home目錄下建立一個以用戶登錄名為名稱的目錄做為其主目錄.(2)刪除用戶刪除用戶與加用戶的工作正好相反,一方面在/etc/passwd和/etc/group文件中刪除用戶的入口項,然后刪除用戶的HOME目錄和所有文獻(xiàn).rm-r/usr/loginname刪除整個目錄樹.假如用戶在/usr/spool/cron/crontabs中有crontab文獻(xiàn),也應(yīng)當(dāng)刪除.(3)將用戶移到另一個系統(tǒng)這是一個復(fù)雜的問題,不只是拷貝用戶的文獻(xiàn)和用戶在/etc/passwd文獻(xiàn)中的入口項.一方面一個問題是用戶的UID和GID也許已經(jīng)用于另一個系統(tǒng),若是出現(xiàn)這種情況,必須給要移的用戶分派此外的UID和GID,假如改變了用戶的UID和GID,則必須搜索該用戶的所有文獻(xiàn),將文獻(xiàn)的原UID和GID改成新的UID和GID.用find命令可以完畢這一修改:find.-userolduid-execchownnewuid{}\;find.-groupoldgid-execchgrpnewgid{}\;也許還要為用戶移走其它一些文獻(xiàn):/usr/mail/user和/usr/spool/cron/crontabs/user.假如用戶從一個不是本系統(tǒng)管理員的系統(tǒng)移來,則應(yīng)對該用戶的目錄結(jié)構(gòu)運營程序來檢查.一個不安全系統(tǒng)的用戶,也許有與該用戶其它文獻(xiàn)存在一起的SUID/SGID程序,而這個SUID/SGID程序?qū)儆诹硪粋€用戶.在這種情況下,假如用cpio或tar命令將用戶的目錄結(jié)構(gòu)拷貝到本系統(tǒng),SUID/SGID程序也將會拷貝到本系統(tǒng)而沒有任何警告信息.應(yīng)當(dāng)在允許用戶使用新系統(tǒng)以前先刪除這種文件的SUID/SGID許可.總之,始終堅持檢查所移用戶的文獻(xiàn)總是更安全些.也可以用su命令進(jìn)入用戶的戶頭,再拷貝用戶文獻(xiàn),這樣文獻(xiàn)的所有者就是該用戶,而不是root.8.安全檢查像find和secure這樣的程序稱為檢查程序,它們搜索文獻(xiàn)系統(tǒng),尋找出SUID/SGID文獻(xiàn),設(shè)備文獻(xiàn),任何人可寫的系統(tǒng)文獻(xiàn),設(shè)有口令的登錄用戶,具有相同UID/GID的用戶等等.(1)記帳UNIX記帳軟件包可用作安全檢查工具,除最后登錄時間的記錄外,記帳系統(tǒng)還能保存全天運營的所有進(jìn)程的完整記錄,對于一個進(jìn)程所存貯的信息涉及UID,命令名,進(jìn)程開始執(zhí)行與結(jié)束的時間,CPU時間和實際消耗的時間,該進(jìn)程是否是root進(jìn)程,這將有助于系統(tǒng)管理員了解系統(tǒng)中的用戶在干什么.acctcom命令可以列出一天的帳目表.有明,系統(tǒng)中有多個記帳數(shù)據(jù)文獻(xiàn),記帳信息保存在文獻(xiàn)/usr/adm/pacct*中,/usr/adm/pacct是當(dāng)前記錄文獻(xiàn),/usr/adm/pacctn是以前的記帳文獻(xiàn)(n為整型數(shù)).若有若干個記帳文獻(xiàn)要查看,可在acctcom命令中指定文獻(xiàn)名:acctcom/usr/adm/pacct?/usr/adm/pacct要檢查的問題的其中之一是:在acctcom的輸出中查找一個用戶過多的登錄過程,若有,則說明也許有人一遍遍地嘗試登錄,猜測口令,企圖非法進(jìn)入系統(tǒng).此外,還應(yīng)查看root進(jìn)程,除了系統(tǒng)管理員用su命令從終端進(jìn)入root,系統(tǒng)啟動,系統(tǒng)停止時間,以及由init(通常init只啟動getty,login,登錄shell),cron啟動的進(jìn)程和具有rootSUID許可的命令外,不應(yīng)當(dāng)有任何root進(jìn)程.由記帳系統(tǒng)也可獲得有關(guān)每個用戶的CPU運用率,運營的進(jìn)程數(shù)等記錄數(shù)據(jù).(2)其它檢查命令*du:報告在層次目錄結(jié)構(gòu)(當(dāng)前工作目錄或指定目錄起)中各目錄占用的磁盤塊數(shù).可用于檢查用戶對文獻(xiàn)系統(tǒng)的使用情況.*df:報告整個文獻(xiàn)系統(tǒng)當(dāng)前的空間使用情況.可用于合理調(diào)整磁盤空間的使用和管理.*ps:檢查當(dāng)前系統(tǒng)中正在運營的所有進(jìn)程.對于用了大量CPU時間的進(jìn)程,同時運營了許多進(jìn)程的用戶,運營了很長時間但用了很少CPU時間的用戶進(jìn)程應(yīng)當(dāng)進(jìn)一步檢查.還可以查出運營了一個無限制循環(huán)的后臺進(jìn)程的用戶,未注銷戶頭就關(guān)終端的用戶(一般發(fā)生在直接連線的終端).*who:可以告訴系統(tǒng)管理員系統(tǒng)中工作的進(jìn)展情況等等許多信息,檢查用戶的登錄時間,登錄終端.*su:每當(dāng)用戶試圖使用su命令進(jìn)入系統(tǒng)用戶時,命令將在/usr/adm/sulog文獻(xiàn)中寫一條信息,若該文獻(xiàn)記錄了大量試圖用su進(jìn)入root的無效操作信息,則表白了也許有人企圖破譯root口令.*login:在一些系統(tǒng)中,login程序記錄了無效的登錄企圖(若本系統(tǒng)的login程序不做這項工作而系統(tǒng)中有l(wèi)ogin源程序,則應(yīng)修改login).天天總有少量的無效登錄,若無效登錄的次數(shù)忽然增長了兩倍,則表明也許有人企圖通過猜測登錄名和口令,非法進(jìn)入系統(tǒng).這里最重要的一點是:系統(tǒng)管理沒越熟悉自己的用戶和用戶的工作習(xí)慣,就越能快速發(fā)現(xiàn)系統(tǒng)中任何不尋常的事件,而不尋常的事件意味著系統(tǒng)已被人竊密.(3)安全檢查程序的問題關(guān)于以上的檢查方法的一個警告,若有誘騙,則這些方法中沒有幾個能防誘騙.如find命令,假如碰到途徑名長于256個字符的文獻(xiàn)或具有多于200個文件的目錄,將放棄解決該文獻(xiàn)或目錄,用戶就有也許運用建立多層目錄結(jié)構(gòu)或大目錄隱藏SUID程序,使其逃避檢查(但find命令會給出一個錯誤信息,系統(tǒng)管理員應(yīng)手工檢查這些目錄和文獻(xiàn)).也可用ncheck命令搜索文獻(xiàn)系統(tǒng),但它沒有find命令指定搜索哪種文獻(xiàn)的功能.假如定期存取.profile文獻(xiàn),則檢查久未登錄用戶的方法就不奏效了.而用戶用su命令時,除非用參數(shù)-,否則su不讀用戶的.profile.有三種方法可尋找久未登錄的帳戶:.UNIX記帳系統(tǒng)在文獻(xiàn)/usr/adm/acct/sum/login中為每個用戶保存了最后一次登錄日期.用這個文獻(xiàn)的好處是,該文獻(xiàn)由系統(tǒng)維護(hù),所以可完全肯定登錄日期是準(zhǔn)確的.缺陷是必須在系統(tǒng)上運營記帳程序以更新loginlog文獻(xiàn),假如在清晨(半夜后)運營記帳程序,一天的登錄日期可能就被清除了../etc/passwd文獻(xiàn)中的口令時效域?qū)⒛芨嬖V系統(tǒng)管理員,用戶的口令是否過期了,若過期,則意味著自過期以來,戶頭再未被用過.這一方法的好處在于系統(tǒng)記錄了久未用的戶頭,檢查過程簡樸,且不需要記帳系統(tǒng)所需要的磁盤資源,缺陷是也許系統(tǒng)管理員不想在系統(tǒng)上設(shè)立口令時效,并且這一方法僅在口令的最大有效期(只有幾周)才是準(zhǔn)確的..系統(tǒng)管理員可以寫一個程序,天天(和重新引導(dǎo)系統(tǒng)時)掃描/etc/wtmp,自己保存下用戶最后登錄時間記錄,這一方法的好處是不需要記帳程序,并且時間準(zhǔn)確,缺陷是要自己寫程序.以上任何方法都可和/usr/adm/sulog文獻(xiàn)結(jié)合起來,查出由login或su登錄戶頭的最后登錄時間.假如有人存心破壞系統(tǒng)安全,第一件要做的事就是尋找檢查程序.破壞者將修改檢查程序,使其不能報告任何異常事件,也也許停止系統(tǒng)記帳,刪除記帳文獻(xiàn),使系統(tǒng)管理員不能發(fā)現(xiàn)破壞者干了些什么.(4)系統(tǒng)泄密后怎么辦?發(fā)現(xiàn)有人已經(jīng)破壞了系統(tǒng)安全的時候,這時系統(tǒng)管理員一方面應(yīng)做的是面對肇事用戶.假如該用戶所做的事不是蓄意的,并且公司沒有關(guān)于"破壞安全"的規(guī)章,也未導(dǎo)致?lián)p壞,則系統(tǒng)管理員只需清理系統(tǒng),并留心該用戶一段時間.如果該用戶導(dǎo)致了某些損壞,則應(yīng)當(dāng)報告有關(guān)人士,并且應(yīng)盡也許地將系統(tǒng)恢復(fù)到本來的狀態(tài).假如肇事者是非授權(quán)用戶,那就得做最壞的假設(shè)了:肇事者已設(shè)法成為root且本系統(tǒng)的文獻(xiàn)和程序已經(jīng)泄密了.系統(tǒng)管理員應(yīng)當(dāng)想法查出誰是肇事者,他導(dǎo)致了什么損壞?還應(yīng)當(dāng)對整個文獻(xiàn)做一次全面的檢查,并不只是檢查SUID和SGID,設(shè)備文獻(xiàn).假如系統(tǒng)安全被一個敵對的用戶破壞了,應(yīng)當(dāng)采用下面的環(huán)節(jié):.關(guān)系統(tǒng),然后重新引導(dǎo),不要進(jìn)入多用戶方式,進(jìn)入單用戶方式..安裝具有本系統(tǒng)原始UNIX版本的帶和軟盤..將/bin,/usr/bin,/etc,/usr/lib中的文獻(xiàn)拷貝到一個暫存目錄中..將暫存目錄中所有文獻(xiàn)的校驗和(用原始版本的sum程序拷貝做校驗和,不要用/bin中的suM程序做)與系統(tǒng)中所有對就的文獻(xiàn)的校驗和進(jìn)行比較,假如有任何差別,要查清差別產(chǎn)生的因素.假如兩個校驗和不同,是由于安裝了新版本的程序,確認(rèn)一相是否的確是安裝了新版本程序.如果不能找出校驗和不同的因素,用暫存目錄中的命令替換系統(tǒng)中的原有命令..在確認(rèn)系統(tǒng)中的命令尚未被竄改之前,不要用系統(tǒng)中原命令.用暫存目錄中的shell,并將PATH設(shè)立為僅在暫存目錄中搜索命令..根據(jù)暫存目錄中所有系統(tǒng)命令的存取許可,檢查系統(tǒng)中所有命令的存取許可..檢查所有系統(tǒng)目錄的存取許可,假如用了perms,檢查permlist文獻(xiàn)是否被竄改過..假如系統(tǒng)UNIX(/unix)的校驗和不同于原版的校驗和,并且系統(tǒng)管理員從未修改過核心,則應(yīng)當(dāng)認(rèn)為,一個非法者"很能干",從暫存緩沖區(qū)重新裝入系統(tǒng).系統(tǒng)管理員可以從逐步增長的文獻(xiàn)系統(tǒng)備份中恢復(fù)用戶的文件,但是在檢查備份中的"有趣"文獻(xiàn)之前,不能做文獻(xiàn)恢復(fù)..改變系統(tǒng)中的所有口令,告知用戶他們的口令已改變,應(yīng)找系統(tǒng)管理員得到新口令..當(dāng)用戶來要新口令時,告訴用戶發(fā)生了一次安全事故,他們應(yīng)查看自己的文獻(xiàn)和目錄是否潛伏著危害(如SUID文獻(xiàn),特洛依木馬,任何人可寫的目錄),并報告系統(tǒng)管理員任何異乎尋常的情況..設(shè)法查清安全破壞是如何發(fā)生的?假如沒有肇事者說明,這也許是不可能弄清的.假如能發(fā)現(xiàn)肇事者如何進(jìn)入系統(tǒng),設(shè)法堵住這個安全漏洞.第一次安裝UNIX系統(tǒng)時,可以將shell,sum命令,所有文獻(xiàn)的校驗和存放在安全的介質(zhì)上(帶,軟盤,硬盤和任何可以卸下并鎖焉起來的介質(zhì)).于是不必再從原版系統(tǒng)帶上重新裝入文獻(xiàn),可以安裝備份介質(zhì),裝入shell和sum,將存在帶上的校驗和與系統(tǒng)中文獻(xiàn)的校驗和進(jìn)行比較.系統(tǒng)管理員也許想自己寫一個計算校驗和的程序,破壞者將不能知道該程序的算法,假如將該程序及校驗和保存在帶上,這一方法的保密問題就減小到一個物理的安全問題,即只需將帶鎖起來.9.加限制的環(huán)境(1)加限制的shell(rsh)該shell幾乎與普通的shell相同,但是該shell的設(shè)計能限制一個用戶的能力,不允許用戶有某些標(biāo)準(zhǔn)shell所允許的行為:.不能改變工作目錄(cd)..不能改變PATH或SHELLshell變量..不能使用品有"/"的命令名..不能重定向輸出(>和>>)..不能用exec執(zhí)行程序.用戶在登錄時,招待.profile文獻(xiàn)后系統(tǒng)就強加上了這些限制,假如用戶在.profile文獻(xiàn)正被解釋時按了BREAK鍵或DELETE鍵,該用戶將被注銷.這些簡樸的限制,使用寫受限制用戶的.profile文獻(xiàn)的系統(tǒng)管理員可以對用戶能使用什么命令,進(jìn)行完全的控制.應(yīng)當(dāng)注意:系統(tǒng)V加限制的shell事實上不是很安全,在敵對的用戶時不要用.系統(tǒng)V版本2以后的版本中加限制的shell更安全些.但若允許受限制的用戶使用某些命令(如env,cp,ln),用戶將能逃避加限制的shell,進(jìn)入非限制的shell.(2)用chroot()限制用戶假如的確想限制一個用戶,可用chroot()子程序為用戶建立一個完全隔離的環(huán)境,改變了進(jìn)程對根目錄的概念,因此可用于將一個用戶封在整個文獻(xiàn)系統(tǒng)的某一層目錄結(jié)構(gòu)中,使用戶無法用cd命令轉(zhuǎn)出該層目錄結(jié)構(gòu),不能存取文件系統(tǒng)中其余部分的任何文獻(xiàn).這種限制方式比加限制的shell好得多.用戶使用的命令應(yīng)由系統(tǒng)管理員在新的root目錄中建立一個bin目錄,并建立用戶可用命令的鏈到系統(tǒng)的/bin目錄中相應(yīng)命令文獻(xiàn)上(若在不同的文獻(xiàn)系統(tǒng)則應(yīng)拷貝命令文獻(xiàn)).還應(yīng)建立新的passwd文獻(xiàn),保存系統(tǒng)登錄戶頭(為了使ls-l對的地報告與受限制的子文獻(xiàn)系統(tǒng)中的文獻(xiàn)相關(guān)的對的登錄名)和用戶帳戶,但系統(tǒng)帳戶的口令改為NOLOGIN以使受限制的用戶不能取得系統(tǒng)登錄的真實口令,使"破密"程序的任何企圖成為泡影.utmp文獻(xiàn)是who所需要的,該文獻(xiàn)具有系統(tǒng)中已登錄用戶的列表.新的/etc/profile文獻(xiàn)也不是建鏈文獻(xiàn),以便受限制的用戶可以執(zhí)行不同的啟動命令./dev目錄中的終端設(shè)備文獻(xiàn)被鏈接到新的/dev目錄下,由于命令who產(chǎn)生輸出時要查看這些文獻(xiàn).在系統(tǒng)V及以后的UNIX版本中,login命令有chroot()的功能.假如口令文件中用戶入口項的登錄shell域(最后一個域)是*,login將調(diào)用chroot()把用戶的根目錄設(shè)立成為口令文獻(xiàn)中用戶入口項登錄目錄域指定的目錄.然后再調(diào)用exec()執(zhí)行login,新的login將在新子系統(tǒng)文獻(xiàn)中執(zhí)行該用戶的登錄.chroot()并不是把root封鎖在一個子文獻(xiàn)系統(tǒng)中,所以給受限制用戶用的命令時應(yīng)加以考慮,具有root的SUID許可的程序也許會給予用戶root的能力.應(yīng)當(dāng)將這種也許減低到最小限度,交給用戶使用的命令應(yīng)當(dāng)取自清除了SUID陷井的系統(tǒng)命令.鏈接文獻(xiàn)可減少磁盤占用區(qū),但要記住,當(dāng)與敵對用戶打交道時鏈接到chroot目錄結(jié)構(gòu)(特別是命令)的系統(tǒng)文獻(xiàn)是很危險的.假如建立一個像這樣的限制環(huán)境,應(yīng)保證對安裝到新的/bin的每條命令都做過測試,有些程序也許有系統(tǒng)管理員未曾想到的出乎意料的執(zhí)行結(jié)果.為了使這些命令能運營,還得在加限制的子文獻(xiàn)系統(tǒng)中加服務(wù)目錄或文獻(xiàn)如:/tmp,/etc/termcap,/usr/lib/terminfo,/dev/mem,/dev/kmem,/dev/swap,用戶所登錄的/dev中的tty文獻(xiàn)以及/unix.有些程序在子文獻(xiàn)系統(tǒng)中運營時不會很好,假如將假脫機程序和網(wǎng)絡(luò)命令拷貝到加限制的子文獻(xiàn)系統(tǒng)中,并放在為兩條命令專建的目錄層結(jié)構(gòu)下,它們也許也運營不了.10.小系統(tǒng)安全任何足夠小,運營于辦公室的UNIX系統(tǒng)就是小系統(tǒng).這類小系統(tǒng)也涉及所有臺式UNIX機器.根據(jù)安全觀點,使小系統(tǒng)很特別而值得特別的有以下幾點:.小系統(tǒng)的用戶比大系統(tǒng)的用戶少,通常是很小一組用戶,使系統(tǒng)管理員能熟悉每個人,安全問題可以直接地面對面解決..由于?。誑IX系統(tǒng)管理更簡樸,也許只需要一個系統(tǒng)管理員,因而維護(hù)系統(tǒng)安全的責(zé)任只有一個人擔(dān)負(fù)..假如既是用戶又是系統(tǒng)管理員,將不能花大量時間考慮系統(tǒng)安全..假如自己擁有系統(tǒng)并且是系統(tǒng)管理員,就也許有權(quán)直接將違反規(guī)的用戶從系統(tǒng)中刪除,而沒有幾個大系統(tǒng)的管理員能有這種權(quán)利..假如自己是系統(tǒng)的唯一用戶,則將既是用戶又是管理員,維護(hù)系統(tǒng)安全的任務(wù)就很簡樸了,只須保證系統(tǒng)中所有登錄戶頭的口令是好的..假如不能將系統(tǒng)鎖起來,就把敏感的數(shù)據(jù)存放在軟盤上,把軟盤鎖起來..即使系統(tǒng)中有若干個用戶,但假如系統(tǒng)的終端之產(chǎn)是有線連接,并且用戶們保持門上鎖,則系統(tǒng)也將是安全的,至少在本組用戶內(nèi)是安全的..小系統(tǒng)通常有可移動的介質(zhì)(軟盤),可用mount命令將其安裝到系統(tǒng)上,提供一種安全的方法讓用戶自己在系統(tǒng)上安裝軟盤,否則系統(tǒng)管理員要一天到晚地干這些瑣碎的安裝盤事務(wù).允許用戶安裝軟盤的通常做法是給用戶一個SUID程序,該程序基本完畢與系統(tǒng)管理員安裝用戶軟盤同樣的操作,一方面檢查軟盤上有無SUID/SGID/設(shè)備文獻(xiàn),若發(fā)現(xiàn)任何奇怪的文獻(xiàn),則拒絕安裝該軟盤..當(dāng)小系統(tǒng)開電源后,系統(tǒng)一般在從硬盤引導(dǎo)以前,先試圖從軟盤引導(dǎo).這就意味著計算機將一方面試圖從軟盤裝入程序,若軟盤不在驅(qū)動器中,系統(tǒng)將從硬盤裝入UNIX內(nèi)核.軟盤幾乎可以具有任何程序,涉及在控制臺啟動rootshell的UNIX系統(tǒng)版本.假如破壞者有一把螺絲起子和有關(guān)系統(tǒng)內(nèi)部的一些知識,則即便系統(tǒng)有被認(rèn)為防止安全事故發(fā)生的特殊"微碼"口令,也也許被誘騙去從軟盤引導(dǎo)..即使小系統(tǒng)晚上不鎖,凡從不將個人的或秘密的信息存放在大系統(tǒng)上的人他們不也許結(jié)識所有系統(tǒng)上的用戶),也不會想把這樣的信息存放在小系統(tǒng)上..小系統(tǒng)的系統(tǒng)管理員在使用UNIX系統(tǒng)方面常不如大系統(tǒng)管理員有經(jīng)驗,而安全地管理系統(tǒng)需要一定的使用系統(tǒng)的知識.11.物理安全對于運營任何操作系統(tǒng)的小型或大型計算機,物理安全都是一個要考慮的重要問題,物理安全涉及:鎖上放置計算機的屋子,報警系統(tǒng),警衛(wèi),所有安頓在不能上鎖的地方的通訊設(shè)施,涉及有線通訊線,電話線,局域網(wǎng),遠(yuǎn)程網(wǎng),應(yīng)答MODEM,鑰匙或信用卡辨認(rèn)設(shè)備,給用戶的口令和鑰匙分派,任何前置通訊設(shè)施的加密裝置,文獻(xiàn)保護(hù),備份或恢復(fù)方案(稱為安全保險方案,用作應(yīng)付偶爾的或蓄意的數(shù)據(jù)或計算設(shè)備被破壞的情況),上鎖的輸出仃,上鎖的廢物箱和碎紙機.物理安全中所飲食的總考慮應(yīng)是:在安全方案上所付出的代價不應(yīng)當(dāng)多于值得保護(hù)的(硬件或軟件的)價值.下面著重討論保護(hù)用戶的各種通訊線.對于任何可在不上鎖的地方存取的系統(tǒng),通訊是特別嚴(yán)重的安全薄弱環(huán)節(jié).當(dāng)允許用戶通過掛到地方電話公司的撥號MODEM存取系統(tǒng)時,系統(tǒng)的安全限度就將大大地削弱,有電話和MODEM的任何人就也許非法進(jìn)入該系統(tǒng).應(yīng)當(dāng)避免這一情況,要保證MODEM的電話號碼不被列于電話薄上,并且最佳將電話號碼放在不同于本公司普通電話號碼所在的互換機上.總之,不要假設(shè)沒人知道自己的撥入號碼!大多數(shù)家庭計算機都能編程用一個MODEM整天地依次調(diào)用撥號碼,記錄下連接上其它MODEM的號碼.假如也許,安裝一個局域PBX,使得對外界的撥號產(chǎn)生一秒鐘的撥號蜂音,并且必須輸入一個與MODEM相關(guān)聯(lián)的擴展號碼.12.用戶意識UNIX系統(tǒng)管理員的職責(zé)之一是保證用戶安全.這其中一部分工作是由用戶的管理部門來完畢,但是作為系統(tǒng)管理員,有責(zé)任發(fā)現(xiàn)和報告系統(tǒng)的安全問題,由于系統(tǒng)管理員負(fù)責(zé)系統(tǒng)的運營.避免系統(tǒng)安全事故的方法是防止性的,當(dāng)用戶登錄時,其shell在給出提醒前先執(zhí)行/etc/profile文獻(xiàn),要保證該文獻(xiàn)中的PATH指定最后搜索當(dāng)前工作目錄,這樣將減少用戶能運營特洛依木馬的機會.將文獻(xiàn)建立屏蔽值的設(shè)立放在該文獻(xiàn)中也是很合適的,可將其值設(shè)立成至少將防止用戶無意中建立任何人都能寫的文獻(xiàn)(022/026).要小心選擇此值,假如限制太嚴(yán),則用戶會在自己的.profile中重新調(diào)用umask以抵制系統(tǒng)管理員的意愿,假如用戶大量使用小組權(quán)限共享文獻(xiàn),系統(tǒng)管理員就一要設(shè)立限制小組存取權(quán)限的屏蔽值.系統(tǒng)管理員必須建立系統(tǒng)安全和用戶的"痛苦量"間的平衡(痛苦量是安全限制引起的憤怒的函數(shù)).定期地用grep命令查看用戶.profile文獻(xiàn)中的umask,可了解系統(tǒng)安全限制是否超過了用戶痛苦極限.系統(tǒng)管理員可每星期隨機抽選一個用戶,將該用戶的安全檢查結(jié)果(用戶的登錄情況簡報,SUID/SGID文獻(xiàn)列表等)發(fā)送給他的管理部門和他本人.重要有四個目的:.大多數(shù)用戶會收到至少有一個文獻(xiàn)檢查情況的郵件,這將引起用戶考慮安全問題(雖然并不意味著用戶們會采用加強安全的行動)..有大量可寫文獻(xiàn)的用戶,將一星期得到一次郵件,直到他們?nèi)∠蓪懳墨I(xiàn)的寫許可為止.冗長的煩人的郵件信息也許足以促使這些用戶采用措施,刪除文獻(xiàn)的寫許可..郵件將列出用戶的SUID程序,引起用戶注意自己有SUID程序,使用戶知道是否有不是自己建立的SUID程序..送安全檢查表可供用戶管理自己的文獻(xiàn),并使用戶知道對文獻(xiàn)的管理關(guān)系到數(shù)據(jù)安全.假如系統(tǒng)管理員打算這樣做,應(yīng)事先讓用戶知道,以便他們了解安全檢查郵件的目的.發(fā)送郵件是讓用戶具有安全意識,不要抱怨發(fā)送郵件.管理意識是提高安全性的另一個重要因素.假如用戶的管理部門對安全規(guī)定不強烈,系統(tǒng)管理員也許也忘掉強化安全規(guī)則.最佳讓管理部門建立一套每個人都必須遵守的安全標(biāo)準(zhǔn),假如系統(tǒng)管理員在此基礎(chǔ)上再建立自己的安全規(guī)則,就強化了安全.管理有助于加強用戶意識,讓用戶明確,信息是有價值的資產(chǎn).系統(tǒng)管理員應(yīng)當(dāng)使安全保護(hù)方法對用戶盡也許地簡樸,提供一些提高安全的工具,如:公布鎖終端的lock程序,讓用戶自己運營secure程序,將pwexp(檢查用戶口令信息的程序)放入/etc/profile中,使用戶知道自己的口令時間.多教給用戶一些關(guān)于系統(tǒng)安全的知識,保證用戶知道自己的許可權(quán)限和umask命令的設(shè)立值.假如注意到用戶在做蠢事,就給他們一些應(yīng)當(dāng)如何做才對的提醒.用戶知道的關(guān)于安全的知識越多,系統(tǒng)管理員在保護(hù)用戶利益方面做的事就越少.13.系統(tǒng)管理員意識(1)保持系統(tǒng)管理員個人的登錄安全若系統(tǒng)管理員的登錄口令泄密了,則竊密者離竊取root只有一步之遙了,由于系統(tǒng)管理員經(jīng)常作為root運營,竊密者非法進(jìn)入到系統(tǒng)管理員的戶頭后,將用特洛依木馬替換系統(tǒng)管理員的某些程序,系統(tǒng)管理員將作為root運營這些已被替換的程序.正是由于這個因素,在UNIX系統(tǒng)中,管理員的戶頭最常受到攻擊.即使su命令通常要在任何都不可讀的文獻(xiàn)中記錄所有想成為root的企圖,還可用記帳數(shù)據(jù)或ps命令辨認(rèn)運營su命令的用戶.也是如此,系統(tǒng)管理員作為root運營程序時應(yīng)當(dāng)特別小心,由于最微小的疏忽也也許"沉船".下列一些指導(dǎo)規(guī)則可使系統(tǒng)管理員駕駛一艘"堅固的船":.不要作為root或以自己的登錄戶頭運營其他用戶的程序,一方面用su命令進(jìn)入用戶的戶頭..決不要把當(dāng)前工作目錄排在PATH途徑表的前邊,那樣實際是招引特洛依木馬.當(dāng)系統(tǒng)管理員用su命令進(jìn)入root時,他的PATH將會改變,就讓PATH保持這樣,以避免特洛依木馬的侵入..敲入/bin/su執(zhí)行su命令.若有su源碼,將其改成必須用全途徑名運營(即su要確認(rèn)argv[0]的頭一個字符是"/"才運營).隨著時間的推移,用戶和管理員將養(yǎng)成敲/bin/su的習(xí)慣..不要未注銷戶頭就離開終端,特別是作為root用戶時更不能這樣.當(dāng)系統(tǒng)管理員作為root用戶時,命令提醒符是"#",這個提醒符對某些人來說也許是個紅燈標(biāo)志..不允許root在除控制臺外的任何終端登錄(這是login的編譯時的選項),假如沒有l(wèi)ogin源碼,就將登錄名root改成別的名,使破壞者不能在root登錄名下猜測各種也許的口令,從而非法進(jìn)入root的戶頭..經(jīng)常改變root的口令..確認(rèn)su命令記下的想運營su企圖的記錄/usr/adm/sulog,該記錄文獻(xiàn)的許可方式是600,并屬root所有.這是非法者喜歡選擇來替換成特洛依木馬的文獻(xiàn)..不要讓某人作為root運營,即使是幾分鐘,即使是系統(tǒng)管理員在一旁注視著也不行?。ǎ?保持系統(tǒng)安全.考慮系統(tǒng)中一些關(guān)鍵的薄弱環(huán)節(jié):a.系統(tǒng)是否有MODEM?電話號碼是否公布?b.系統(tǒng)是否連接到?尚有什么系統(tǒng)也連接到該網(wǎng)絡(luò)?c.系統(tǒng)管理員是否使用未知來處或來處不可靠的程序?d.系統(tǒng)管理員是否將重要信息放在系統(tǒng)中?e.系統(tǒng)的用戶是熟悉系統(tǒng)的使用還是新手?f.用戶是否很重視關(guān)心安全?g.用戶的管理部門是否重視安全?.保持系統(tǒng)文獻(xiàn)安全的完整性.檢查所有系統(tǒng)文獻(xiàn)的存取許可,任何具有SUID許可的程序都是非法者想偷換的選擇對象..要特別注意設(shè)備文獻(xiàn)的存取許可..要審查用戶目錄中具有系統(tǒng)ID/系統(tǒng)小組的SUID/SGID許可的文獻(xiàn)..在未檢查用戶的文獻(xiàn)系統(tǒng)的SUID/SGID程序和設(shè)備文獻(xiàn)之前,不要安裝用戶的文獻(xiàn)系統(tǒng)..將磁盤的備份存放在安全的地方..設(shè)立口令時效,假如能存取UNIX的源碼,將加密口令和信息移到僅對root可讀的文獻(xiàn)中,并修改系統(tǒng)的口令解決子程序.這樣可增長口令的安全.修改passwd,使passwd能刪去口令打頭和末尾的數(shù)字,然后根據(jù)spell詞典和/etc/passwd中用戶的個人信息,檢查用戶的新口令,也檢查用戶新口令中子串等于登錄名的情況.假如新口令是spell詞典中的單詞,或/etc/passwd中的入口項的某項值,或是登錄名的子串,passwd將不允許用戶改變口令..記錄本系統(tǒng)的用戶及其授權(quán)使用的系統(tǒng)..查出久未使用的登錄戶頭,并取消該戶頭..保證沒有無口令的登錄戶頭..啟動記帳系統(tǒng)..查出不尋常的系統(tǒng)使用情況,如大量的占用磁盤,大量的使用CPU時間,大量的進(jìn)程,大量的使用su的企圖,大量無效的登錄,大量的到某一系統(tǒng)的網(wǎng)絡(luò)傳輸,奇怪的uucp請求..修改shell,使其等待了一定期間而無任務(wù)時終止運營..修改login,使其打印出用戶登錄的最后時間,三次無效登錄后,將通訊線掛起,以便系統(tǒng)管理員能檢查出是否有人試圖非法進(jìn)入系統(tǒng).保證login不讓root在除控制臺外的任何地方登錄..修改su,使得只有root能以過期口令通過su進(jìn)入某一戶頭..當(dāng)安裝來源不可靠的軟件時,要檢查源碼和makefile文獻(xiàn),查看特殊的子程序調(diào)用或命令..即使是安裝來源可靠的軟件,也要檢查是否有SUID(SGID)程序,確認(rèn)這些許可的確是必要的.假如也許,不要讓這些程序具有系統(tǒng)ID(或組)的SUID(SGID)許可,而應(yīng)當(dāng)建立一個新用戶(或給)供該軟件運營..假如系統(tǒng)在辦公室中,門應(yīng)上鎖,將重要數(shù)據(jù)保存在軟盤上或帶上,并鎖起來..將secure,perms和任何其它做安全檢查的shell程序存取許可置為僅執(zhí)行,更好的是將這些shell程序存于可拆卸的介質(zhì)上..記住,只要系統(tǒng)有任何人都可調(diào)用的撥號線,系統(tǒng)就不也許真正的安全.系統(tǒng)管理員可以很好地防止系統(tǒng)受到偶爾的破壞.但是那些有耐心,有計劃,知道自己在干什么的破壞者,對系統(tǒng)直接的有預(yù)謀的襲擊卻經(jīng)常能成功..假如系統(tǒng)管理員認(rèn)為系統(tǒng)已經(jīng)泄密,則應(yīng)當(dāng)設(shè)法查出肇事者.若肇事者是本系統(tǒng)的用戶,與用戶的管理部門聯(lián)系,并檢查該用戶的文獻(xiàn),查找任何可疑的文獻(xiàn),然后對該用戶的登錄小心地監(jiān)督幾個星期.假如肇事者不是本系統(tǒng)的用戶,可讓本公司采用合法的措施,并規(guī)定所有的用戶改變口令,讓用戶知道出了安全事故,用戶們應(yīng)當(dāng)檢查自己的文獻(xiàn)是否有被竄改的跡象.假如系統(tǒng)管理員認(rèn)為系統(tǒng)軟件已被更改了,就應(yīng)當(dāng)從原版系統(tǒng)帶(或;軟盤)上重裝入所有系統(tǒng)軟件,保持系統(tǒng)安全比道歉更好.---------------------------------標(biāo)題:程序員安全UNIX系統(tǒng)為程序員提供了許多子程序,這些子程序可存取各種安全屬性.有些是信息子程序,返回文獻(xiàn)屬性,實際的和有效的UID,GID等信息.有些子程序可改變文獻(xiàn)屬性.UID,GID等有些解決口令文獻(xiàn)和小組文獻(xiàn),尚有些完畢加密和解密.本文重要討論有關(guān)系統(tǒng)子程序,標(biāo)準(zhǔn)C庫子程序的安全,如何寫安全的C程序并從root的角度介紹程序設(shè)計(僅能被root調(diào)用的子程序).1.系統(tǒng)子程序(1)I/O子程序*creat():建立一個新文獻(xiàn)或重寫一個暫存文獻(xiàn).需要兩個參數(shù):文獻(xiàn)名和存取許可值(8進(jìn)制方式).如:creat("/usr/pat/read_write",0666)/*建立存取許可方式為0666的文獻(xiàn)*/調(diào)用此子程序的進(jìn)程必須要有建立的文獻(xiàn)的所在目錄的寫和執(zhí)行許可,置給creat()的許可方式變量將被umask()設(shè)立的文獻(xiàn)建立屏蔽值所修改,新文獻(xiàn)的所有者和小組由有效的UID和GID決定.返回值為新建文獻(xiàn)的文獻(xiàn)描述符.*fstat():見后面的stat().*open():在C程序內(nèi)部打開文獻(xiàn).需要兩個參數(shù):文獻(xiàn)途徑名和打開方式(I,O,I&O).假如調(diào)用此子程序的進(jìn)程沒有對于要打開的文獻(xiàn)的對的存取許可(涉及文件途徑上所有目錄分量的搜索許可),將會引起執(zhí)行失敗.假如此子程序被調(diào)用去打開不存在的文獻(xiàn),除非設(shè)立了O_CREAT標(biāo)志,調(diào)用將不成功.此時,新文獻(xiàn)的存取許可作為第三個參數(shù)(可被用戶的umask修改).當(dāng)文獻(xiàn)被進(jìn)程打開后再改變該文獻(xiàn)或該文獻(xiàn)所在目錄的存取許可,不影響對該文獻(xiàn)的I/O操作.*read():從已由open()打開并用作輸入的文獻(xiàn)中讀信息.它并不關(guān)心該文獻(xiàn)的存取許可.一旦文獻(xiàn)作為輸入打開,即可從該文獻(xiàn)中讀取信息.*write():輸出信息到已由open()打開并用作輸出的文獻(xiàn)中.同read()同樣它也不關(guān)心該文獻(xiàn)的存取許可.(2)進(jìn)程控制*exec()族:涉及execl(),execv(),execle(),execve(),execlp()和execvp()可將一可執(zhí)行??炜截惖秸{(diào)用進(jìn)程占有的存貯空間.正被調(diào)用進(jìn)程執(zhí)行的程序?qū)⒉粡?fù)存在,新程序取代其位置.這是UNIX系統(tǒng)中一個程序被執(zhí)行的唯一方式:用將執(zhí)行的程序復(fù)蓋原有的程序.安全注意事項:.實際的和有效的UID和GID傳遞給由exec()調(diào)入的不具有SUID和SGID許可的程序..假如由exec()調(diào)入的程序有SUID和SGID許可,則有效的UID和GID將設(shè)置給該程序的所有者或小組..文獻(xiàn)建立屏蔽值將傳遞給新程序..除設(shè)了對exec()關(guān)閉標(biāo)志的文獻(xiàn)外,所有打開的文獻(xiàn)都傳遞給新程序.用fcntl()子程序可設(shè)立對exec()的關(guān)閉標(biāo)志.*fork():用來建立新進(jìn)程.其建立的子進(jìn)程是與調(diào)用fork()的進(jìn)程(父進(jìn)程)完全相同的拷貝(除了進(jìn)程號外)安全注意事項:.子進(jìn)程將繼承父進(jìn)程的實際和有效的UID和GID..子進(jìn)程繼承文獻(xiàn)方式建立屏蔽值..所有打開的文獻(xiàn)傳給子進(jìn)程.*signal():允許進(jìn)程解決也許發(fā)生的意外事件和中斷.需要兩個參數(shù):信號編號和信號發(fā)生時要調(diào)用的子程序.信號編號定義在signal.h中.信號發(fā)生時要調(diào)用的子程序可由用戶編寫,也可用系統(tǒng)給的值,如:SIG_IGN則信號將被忽略,SIG_DFL則信號將按系統(tǒng)的缺省方式解決.如許多與安全有關(guān)的程序嚴(yán)禁終端發(fā)中斷信息(BREAK和DELETE),以免自己被用戶終端終止運營.有些信號使UNIX系統(tǒng)的產(chǎn)生進(jìn)程的核心轉(zhuǎn)儲(進(jìn)程接受到信號時所占內(nèi)存的內(nèi)容,有時具有重要信息),此系統(tǒng)子程序可用于嚴(yán)禁核心轉(zhuǎn)儲.(3)文獻(xiàn)屬性*access():檢測指定文獻(xiàn)的存取能力是否符合指定的存取類型.需要兩個參數(shù):文獻(xiàn)名和要檢測的存取類型(整數(shù)).存取類型定義如下:0:檢查文獻(xiàn)是否存在1:檢查是否可執(zhí)行(搜索)2:檢查是否可寫3:檢查是否可寫和執(zhí)行4:檢查是否可讀5:檢查是否可讀和執(zhí)行6:檢查是否可讀可寫可執(zhí)行這些數(shù)字的意義和chmod命令中規(guī)定許可方式的數(shù)字意義相同.此子程序使用實際的UID和GID檢測文獻(xiàn)的存取能力(一般有效的UID和GID用于檢查文獻(xiàn)存取能力).返回值:0:許可-1:不許可.*chmod():將指定文獻(xiàn)或目錄的存取許可方式改成新的許可方式.需要兩個參數(shù):文獻(xiàn)名和新的存取許可方式.*chown():同時改變指定文獻(xiàn)的所有者和小組的UID和GID.(與chown命令不同).由于此子程序同時改變文獻(xiàn)的所有者和小組,故必須取消所操作文獻(xiàn)的SUID和SGID許可,以防止用戶建立SUID和SGID程序,然后運營chown()去獲得別人的權(quán)限.*stat():返回文獻(xiàn)的狀態(tài)(屬性).需要兩個參數(shù):文獻(xiàn)途徑名和一個結(jié)構(gòu)指針,指向狀態(tài)信息的存放的位置.結(jié)構(gòu)定義如下:st_mode:文獻(xiàn)類型和存取許可方式st_ino:I節(jié)點號st_dev:文獻(xiàn)所在設(shè)備的IDst_rdev:特別文獻(xiàn)的IDst_nlink:文獻(xiàn)鏈接數(shù)st_uid:文獻(xiàn)所有者的UIDst_gid:文獻(xiàn)小組的GIDst_size:按字節(jié)計數(shù)的文獻(xiàn)大小st_at(yī)ime:最后存取時間(讀)st_mtime:最后修改時間(寫)和最后狀態(tài)的改變st_ctime:最后的狀態(tài)修改時間返回值:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論