




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)11B通過編程實(shí)現(xiàn)對文件的訪問控制實(shí)驗(yàn)?zāi)康氖炀氄莆誛indows操作系統(tǒng)的訪問控制機(jī)制。理解NTFS文件系統(tǒng)中的文件授權(quán)訪問方法。能夠通過編程初步實(shí)現(xiàn)對文件權(quán)限的查看和修改。實(shí)驗(yàn)準(zhǔn)備(1)NTFS權(quán)限設(shè)置在Windows的NTFS磁盤分區(qū)上可以分別對文件或文件夾設(shè)置NTFS權(quán)限,其中對文件可以設(shè)置五種權(quán)限,分別是:“完全控制”、“修改”、“讀取及運(yùn)行”、“讀取”和“寫入”。對文件夾可以設(shè)置六種權(quán)限,除上面五種權(quán)限外還有一個(gè)“列出文件夾目錄”權(quán)限。(2)Java遍歷指定目錄下的文件夾并查找包含指定關(guān)鍵字的文件文件類型過濾器:FileFilter,在文件拷貝、移動(dòng)、刪除和壓縮時(shí),指定多個(gè)文件類型、修改時(shí)間、大小限制、覆蓋條件、是否包含子目錄等條件進(jìn)行過濾。操作前檢索滿足條件的文件,并估計(jì)所需容量,操作完成后可查看記錄,完成情況一目了然。實(shí)驗(yàn)內(nèi)容(1)下述java程序執(zhí)行搜索文件功能,默認(rèn)目錄為桌面。閱讀并仔細(xì)分析該程序,體會(huì)相關(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)計(jì)文件個(gè)數(shù)的變量staticintcountFolders=0;//聲明統(tǒng)計(jì)文件夾的變量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");//默認(rèn)目錄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+"個(gè)文件,"+countFolders+"個(gè)文件夾,共有"+result.length+"個(gè)符合條件的文件:");for(inti=0;i<result.length;i++){//循環(huán)顯示文件Filefile=result[i];System.out.println("搜索結(jié)果:"+file.getAbsolutePath()+"");}}}(2)對某個(gè)文件夾權(quán)限的設(shè)置的前提是當(dāng)前用戶需要有這個(gè)權(quán)限。以下java代碼實(shí)現(xiàn)了對文件訪問控制權(quán)限進(jì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(); } }}四、實(shí)驗(yàn)報(bào)告1.通過實(shí)驗(yàn)回答下列問題(1)什么是NULLDACL?如果屬于對象的安全描述符的DACL(自由訪問控制列表)的任意訪問控制列表設(shè)置為NULL,則會(huì)創(chuàng)建NullDACL。NullDACL授予對請求它的任何用戶的完全訪問權(quán)限;不對對象執(zhí)行正常安全檢查。不應(yīng)將NullDACL與空DACL混淆??誅ACL是正確分配和初始化的DACL,不包含(ACE)的訪問控制條目??誅ACL不向其分配的對象授予訪問權(quán)限。(2)訪問令牌中記錄了哪些用戶信息?訪問令牌是用來描述進(jìn)程或線程安全上下文的對象,令牌所包含的信息是與該user賬戶相關(guān)的進(jìn)程或線程的身份和權(quán)限信息。當(dāng)user登錄時(shí),系統(tǒng)通過將user輸入的密碼與儲(chǔ)存在安全數(shù)據(jù)庫中的密碼進(jìn)行對比。若密碼正確,系統(tǒng)此時(shí)會(huì)為user生成一個(gè)訪問令牌。之后,該user執(zhí)行的每個(gè)進(jìn)程都會(huì)擁有一個(gè)該訪問令牌的拷貝。(3)給出實(shí)驗(yàn)內(nèi)容(2)的測試結(jié)果。未調(diào)試前的結(jié)果調(diào)試后的結(jié)果2.簡答題(1)描述Windows7.0操作系統(tǒng)的訪問控制模型。通常的訪問控制模型可以分為以下幾類:訪問控制的基本組成如下:訪問控制模型容許控制一個(gè)進(jìn)程訪問安全對象或執(zhí)行諸多系統(tǒng)管理任務(wù)的能力。訪問控制模型有兩個(gè)基本的組件:一、訪問令牌(包含關(guān)于登陸用戶的信息)二、安全描述符(包含用于保護(hù)一個(gè)安全對象的安全信息)當(dāng)一個(gè)用戶要登陸,系統(tǒng)驗(yàn)證用戶的用戶名和密碼。若是驗(yàn)證成功,系統(tǒng)建立一個(gè)訪問令牌。全部以這個(gè)用戶身份運(yùn)行的進(jìn)程都有一份令牌的拷貝。訪問令牌包含標(biāo)識用戶帳戶以及所在組帳戶的安全標(biāo)識符。固然,訪問令牌還包含不少其它信息,好比用戶以及用戶所在組的特權(quán)列表。當(dāng)進(jìn)程試圖訪問安全對象或者執(zhí)行須要特權(quán)的系統(tǒng)管理任務(wù)時(shí),系統(tǒng)使用這個(gè)訪問令牌識別相應(yīng)的用戶。每當(dāng)一個(gè)安全對象被建立時(shí),系統(tǒng)將一個(gè)安全描述符與對象關(guān)聯(lián)起來,安全描述符中包含由建立者指定的安全信息,若是建立者沒有提供安全信息,那么系統(tǒng)將使用默認(rèn)的安全信息。應(yīng)用程序能夠調(diào)用函數(shù)來得到和設(shè)置一個(gè)已經(jīng)存在的安全對象的安全信息。一個(gè)安全描述符標(biāo)識用戶的全
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度汽車購買保險(xiǎn)附加合同
- 基于OBE的《經(jīng)濟(jì)法原理》課程教學(xué)改革設(shè)計(jì)與實(shí)施-鐘衛(wèi)紅
- 二零二五年度清算機(jī)構(gòu)清算業(yè)務(wù)信息共享協(xié)議
- L123黑白設(shè)計(jì)師作品集
- 初中開學(xué)典禮學(xué)生發(fā)言稿
- 質(zhì)量創(chuàng)優(yōu)方案(二標(biāo)段)
- 三愛班會(huì)發(fā)言稿
- 2025年南充道路運(yùn)輸從業(yè)資格證考試內(nèi)容是什么
- 工作經(jīng)驗(yàn)交流會(huì)發(fā)言稿
- 2025年遂寧貨運(yùn)從業(yè)資格證模擬考試保過版
- 駕駛員心理健康與安全駕駛
- 基于強(qiáng)化學(xué)習(xí)的特征選擇技術(shù)
- 灌入式半柔性復(fù)合抗車轍路面施工工法
- 小班第一學(xué)期教學(xué)進(jìn)度表
- 材料性能學(xué)課件:材料的熱學(xué)性能-2-熱傳導(dǎo)-熱穩(wěn)定性-
- 幼兒園優(yōu)質(zhì)公開課:中班數(shù)學(xué)《尋寶小勇士》課件
- 監(jiān)理單位工程項(xiàng)目總監(jiān)及監(jiān)理人員名冊
- 《市場營銷》課程標(biāo)準(zhǔn)
- 聲樂第2版(學(xué)前教育專業(yè))PPT完整全套教學(xué)課件
- 蘇科版六年級下冊《勞動(dòng)》全一冊全部公開課PPT課件(共9課)
- 鼻飼老年人進(jìn)食照護(hù)-鼻飼的定義和適應(yīng)人群
評論
0/150
提交評論