![網(wǎng)絡(luò)安全導(dǎo)論 實驗11B 通過編程實現(xiàn)對文件的訪問控制_第1頁](http://file4.renrendoc.com/view14/M06/2B/37/wKhkGWZacMOAd-v3AAGCfX4opEU931.jpg)
![網(wǎng)絡(luò)安全導(dǎo)論 實驗11B 通過編程實現(xiàn)對文件的訪問控制_第2頁](http://file4.renrendoc.com/view14/M06/2B/37/wKhkGWZacMOAd-v3AAGCfX4opEU9312.jpg)
![網(wǎng)絡(luò)安全導(dǎo)論 實驗11B 通過編程實現(xiàn)對文件的訪問控制_第3頁](http://file4.renrendoc.com/view14/M06/2B/37/wKhkGWZacMOAd-v3AAGCfX4opEU9313.jpg)
![網(wǎng)絡(luò)安全導(dǎo)論 實驗11B 通過編程實現(xiàn)對文件的訪問控制_第4頁](http://file4.renrendoc.com/view14/M06/2B/37/wKhkGWZacMOAd-v3AAGCfX4opEU9314.jpg)
![網(wǎng)絡(luò)安全導(dǎo)論 實驗11B 通過編程實現(xiàn)對文件的訪問控制_第5頁](http://file4.renrendoc.com/view14/M06/2B/37/wKhkGWZacMOAd-v3AAGCfX4opEU9315.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實驗11B通過編程實現(xiàn)對文件的訪問控制實驗?zāi)康氖炀氄莆誛indows操作系統(tǒng)的訪問控制機制。理解NTFS文件系統(tǒng)中的文件授權(quán)訪問方法。能夠通過編程初步實現(xiàn)對文件權(quán)限的查看和修改。實驗準備(1)NTFS權(quán)限設(shè)置在Windows的NTFS磁盤分區(qū)上可以分別對文件或文件夾設(shè)置NTFS權(quán)限,其中對文件可以設(shè)置五種權(quán)限,分別是:“完全控制”、“修改”、“讀取及運行”、“讀取”和“寫入”。對文件夾可以設(shè)置六種權(quán)限,除上面五種權(quán)限外還有一個“列出文件夾目錄”權(quán)限。(2)Java遍歷指定目錄下的文件夾并查找包含指定關(guān)鍵字的文件文件類型過濾器:FileFilter,在文件拷貝、移動、刪除和壓縮時,指定多個文件類型、修改時間、大小限制、覆蓋條件、是否包含子目錄等條件進行過濾。操作前檢索滿足條件的文件,并估計所需容量,操作完成后可查看記錄,完成情況一目了然。實驗內(nèi)容(1)下述java程序執(zhí)行搜索文件功能,默認目錄為桌面。閱讀并仔細分析該程序,體會相關(guān)函數(shù)的使用方法。packagecom.ltf.file;importjava.io.File;importjava.io.FileFilter;importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner;//操作查找文件的類publicclassTextSearchFile{staticintcountFiles=0;//聲明統(tǒng)計文件個數(shù)的變量staticintcountFolders=0;//聲明統(tǒng)計文件夾的變量publicstaticFile[]searchFile(Filefolder,finalStringkeyWord){File[]subFolders=folder.listFiles(newFileFilter(){@Overridepublicbooleanaccept(Filepathname){if(pathname.isFile())//如果是文件countFiles++;else//如果是目錄countFolders++;if(pathname.isDirectory()||(pathname.isFile()&&pathname.getName().toLowerCase().contains(keyWord.toLowerCase())))returntrue;returnfalse;}});List<File>result=newArrayList<File>();for(inti=0;i<subFolders.length;i++){if(subFolders[i].isFile()){result.add(subFolders[i]);}else{File[]foldResult=searchFile(subFolders[i],keyWord);for(intj=0;j<foldResult.length;j++){result.add(foldResult[j]);//文件保存到集合中}}}Filefiles[]=newFile[result.size()];result.toArray(files);//集合數(shù)組化returnfiles;}publicstaticvoidmain(String[]args){//java程序的主入口處Filefolder=newFile("C:\\Users\\net\\Desktop");//默認目錄Scannerinput=newScanner(System.in);System.out.println("請輸入搜索文件名:");Stringkeyword=input.nextLine();if(!folder.exists()){//如果文件夾不存在System.out.println("目錄不存在:"+folder.getAbsolutePath());return;}File[]result=searchFile(folder,keyword);//調(diào)用方法獲得文件數(shù)組System.out.println("所搜索的關(guān)鍵字:"+keyword);System.out.println("總共查找了"+countFiles+"個文件,"+countFolders+"個文件夾,共有"+result.length+"個符合條件的文件:");for(inti=0;i<result.length;i++){//循環(huán)顯示文件Filefile=result[i];System.out.println("搜索結(jié)果:"+file.getAbsolutePath()+"");}}}(2)對某個文件夾權(quán)限的設(shè)置的前提是當(dāng)前用戶需要有這個權(quán)限。以下java代碼實現(xiàn)了對文件訪問控制權(quán)限進行修改,請讀者調(diào)試、分析和測試相關(guān)代碼。packageedu.sec;importjava.io.File;importjava.io.IOException;importjava.util.Scanner;publicclassAccessControl{ staticbooleancanExecute; staticbooleancanRead; staticbooleancanWrite; publicstaticvoidmain(String[]args){ try{ //訪問sec.txt文件 Filefile=newFile("D:\\sec.txt"); //獲取sec.txt文件的初始權(quán)限 canExecute=file.canExecute(); canRead=file.canRead(); canWrite=file.canWrite(); //輸出文件的初始權(quán)限 System.out.println("文件的初始權(quán)限:執(zhí)行的權(quán)限?--->"+canExecute); System.out.println("文件的初始權(quán)限:是否可讀?--->"+canRead); System.out.println("文件的初始權(quán)限:是否可寫入?--->"+canWrite); //如果文件不存在則創(chuàng)建文件 if(file.createNewFile()){ System.out.println("文件創(chuàng)建成功"); //獲取sec.txt文件的初始權(quán)限 canExecute=file.canExecute(); canRead=file.canRead(); canWrite=file.canWrite(); //輸出文件的初始權(quán)限 System.out.println("文件的初始權(quán)限:執(zhí)行的權(quán)限?--->"+canExecute); System.out.println("文件的初始權(quán)限:是否可讀?--->"+canRead); System.out.println("文件的初始權(quán)限:是否可寫入?--->"+canWrite); //file.setExecutable(true);//設(shè)置可執(zhí)行權(quán)限 //file.setReadable(true);//設(shè)置可讀權(quán)限 //file.setWritable(true);//設(shè)置可寫權(quán)限 } //修改file文件為不可執(zhí)行,可讀但是可寫入 canExecute=file.setExecutable(false); canRead=file.setReadable(true); canWrite=file.setWritable(false); //輸出最終的結(jié)果 System.out.println("--------------更改之后的權(quán)限--------------------------"); System.out.println("文件有執(zhí)行的權(quán)限?--->"+canExecute); System.out.println("文件是否可讀?--->"+canRead); System.out.println("文件是否可寫入?--->"+canWrite); //通過控制的輸入來修改對sec.txt文件的訪問權(quán)限 Scannerscanner=newScanner(System.in); //設(shè)置可執(zhí)行權(quán)限 System.out.println("請輸入文件的執(zhí)行權(quán)限:(trueorfalse)"); StringisExecute=scanner.nextLine(); canExecute=file.setExecutable("true".equals(isExecute.trim())); //設(shè)置可讀權(quán)限 System.out.println("請輸入文件的可讀權(quán)限:(trueorfalse)"); StringisRead=scanner.nextLine(); canRead=file.setReadable("true".equals(isRead.trim())); //設(shè)置可寫權(quán)限 System.out.println("請輸入文件的可寫權(quán)限:(trueorfalse)"); StringisWrite=scanner.nextLine(); canWrite=file.setWritable("true".equals(isWrite.trim())); //輸出最終的結(jié)果 System.out.println("--------------更改之后的權(quán)限--------------------------"); System.out.println("文件有執(zhí)行的權(quán)限?--->"+canExecute); System.out.println("文件是否可讀?--->"+canRead); System.out.println("文件是否可寫入?--->"+canWrite); }catch(IOExceptione){ e.printStackTrace(); } }}四、實驗報告1.通過實驗回答下列問題(1)什么是NULLDACL?如果屬于對象的安全描述符的DACL(自由訪問控制列表)的任意訪問控制列表設(shè)置為NULL,則會創(chuàng)建NullDACL。NullDACL授予對請求它的任何用戶的完全訪問權(quán)限;不對對象執(zhí)行正常安全檢查。不應(yīng)將NullDACL與空DACL混淆??誅ACL是正確分配和初始化的DACL,不包含(ACE)的訪問控制條目。空DACL不向其分配的對象授予訪問權(quán)限。(2)訪問令牌中記錄了哪些用戶信息?訪問令牌是用來描述進程或線程安全上下文的對象,令牌所包含的信息是與該user賬戶相關(guān)的進程或線程的身份和權(quán)限信息。當(dāng)user登錄時,系統(tǒng)通過將user輸入的密碼與儲存在安全數(shù)據(jù)庫中的密碼進行對比。若密碼正確,系統(tǒng)此時會為user生成一個訪問令牌。之后,該user執(zhí)行的每個進程都會擁有一個該訪問令牌的拷貝。(3)給出實驗內(nèi)容(2)的測試結(jié)果。未調(diào)試前的結(jié)果調(diào)試后的結(jié)果2.簡答題(1)描述Windows7.0操作系統(tǒng)的訪問控制模型。通常的訪問控制模型可以分為以下幾類:訪問控制的基本組成如下:訪問控制模型容許控制一個進程訪問安全對象或執(zhí)行諸多系統(tǒng)管理任務(wù)的能力。訪問控制模型有兩個基本的組件:一、訪問令牌(包含關(guān)于登陸用戶的信息)二、安全描述符(包含用于保護一個安全對象的安全信息)當(dāng)一個用戶要登陸,系統(tǒng)驗證用戶的用戶名和密碼。若是驗證成功,系統(tǒng)建立一個訪問令牌。全部以這個用戶身份運行的進程都有一份令牌的拷貝。訪問令牌包含標(biāo)識用戶帳戶以及所在組帳戶的安全標(biāo)識符。固然,訪問令牌還包含不少其它信息,好比用戶以及用戶所在組的特權(quán)列表。當(dāng)進程試圖訪問安全對象或者執(zhí)行須要特權(quán)的系統(tǒng)管理任務(wù)時,系統(tǒng)使用這個訪問令牌識別相應(yīng)的用戶。每當(dāng)一個安全對象被建立時,系統(tǒng)將一個安全描述符與對象關(guān)聯(lián)起來,安全描述符中包含由建立者指定的安全信息,若是建立者沒有提供安全信息,那么系統(tǒng)將使用默認的安全信息。應(yīng)用程序能夠調(diào)用函數(shù)來得到和設(shè)置一個已經(jīng)存在的安全對象的安全信息。一個安全描述符標(biāo)識用戶的全
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025產(chǎn)品購銷合同樣書
- 2023九年級數(shù)學(xué)下冊 第25章 投影與視圖25.1 投影第2課時 正投影說課稿 (新版)滬科版001
- 2025城市民用戶燃氣工程實施合同書范本范文
- 2025婦女發(fā)展監(jiān)測評估項目工程合同管理
- 2025合同模板合伙人利潤分配協(xié)議范本
- 2024-2025學(xué)年高中政治 第3單元 第6課 第1框 源遠流長的中華文化說課稿 新人教版必修3001
- Unit 1 Wish you were here Reading (2) 說課稿-2024-2025學(xué)年高中英語譯林版(2020)選擇性必修第三冊001
- 產(chǎn)品配方技術(shù)轉(zhuǎn)讓合同范例
- 廣西小型溫室工程施工方案
- 泡沫混凝土路基施工方案
- 汽修廠安全風(fēng)險分級管控清單
- 現(xiàn)代通信原理與技術(shù)(第五版)PPT全套完整教學(xué)課件
- 病例展示(皮膚科)
- GB/T 39750-2021光伏發(fā)電系統(tǒng)直流電弧保護技術(shù)要求
- DB31T 685-2019 養(yǎng)老機構(gòu)設(shè)施與服務(wù)要求
- 燕子山風(fēng)電場項目安全預(yù)評價報告
- 高一英語課本必修1各單元重點短語
- 糖尿病運動指導(dǎo)課件
- 完整版金屬學(xué)與熱處理課件
- T∕CSTM 00640-2022 烤爐用耐高溫粉末涂料
- 心腦血管病的危害教學(xué)課件
評論
0/150
提交評論