Unix文件权限
Unix/Linux系統(tǒng)中,對文件(包括目錄)的權(quán)限有一套完整的管理機(jī)制。這樣的機(jī)制保證了系統(tǒng)的安全性。本文主要對Unix/Linux系統(tǒng)中的權(quán)限管理進(jìn)行介紹。
一:文件類型
Unix系統(tǒng)中主要有7種文件類型,分別是普通文件(regular file,包括文本文件和二進(jìn)制文件,在Unix中文本文件和二進(jìn)制文件沒有本質(zhì)的區(qū)別,可執(zhí)行文件就是二進(jìn)制文件,二進(jìn)制文件需要滿足一定的格式才可以被內(nèi)核解析執(zhí)行),目錄文件,塊特殊文件和字符特殊文件(塊特殊文件提供對設(shè)備帶緩沖的訪問,字符特殊文件提供對設(shè)備不帶緩沖的訪問),FIFO(用于進(jìn)程間通信,也稱為命名管道),套接字(用于進(jìn)程間網(wǎng)絡(luò)通信),符號鏈接(指向另一個文件的文件)。
二:讀取文件信息
Unix系統(tǒng)在<sys/stat.h>文件中提供訪問文件信息的函數(shù),主要包括stat,lstat,fstat,fstatat四個函數(shù),stat函數(shù)利用文件名獲取文件相關(guān)信息,將獲取的信息放入stat結(jié)構(gòu)中。stat結(jié)構(gòu)也在<sys/stat.h>中定義。同時頭文件中定義了一系列宏可以用來驗證文件的類型,stat結(jié)構(gòu)中的st_mode字段可以用來判斷文件類型。其原理是將st_mode與屏蔽字做按位與操作,然后與特定的表示文件類型的屏蔽字做對比,相等則表明是相關(guān)的文件類型。
三:文件訪問權(quán)限
Unix文件中標(biāo)識文件權(quán)限的位有12位,從低位到高位的前9位為普通的權(quán)限位,分別表示其他用戶,組用戶,文件所有者用戶的rwx權(quán)限。對所有類型的文件而言,rwx權(quán)限都是有效的。除了這9位之外,還有3位,分別是設(shè)置用戶ID位,設(shè)置組ID位,粘著位。(粘著位是較老的概念,一些較常使用的程序的文本副本可以保存在交換區(qū),這樣下次可以較快的將程序讀入內(nèi)存,粘著位是標(biāo)識是否將副本放置到交換區(qū)的位。)同時還有設(shè)置用戶ID位和設(shè)置組ID位,一個可執(zhí)行的文件可能可以被非文件所有者的用戶執(zhí)行,此時,程序可能需要文件所有者的權(quán)限才可以訪問程序中需要用到的資源,這時如果設(shè)置了設(shè)置用戶ID位則可以將程序(進(jìn)程)的有效用戶ID設(shè)置為程序所有者的ID,如果設(shè)置了設(shè)置用戶組ID位,則可以將進(jìn)程的有效用戶組ID設(shè)置為程序的用戶組ID。使用ls –al命令時,只會顯示一個十位的文件信息,第一個位為標(biāo)識文件類型的位。其余9位位為標(biāo)識文件所有者,組用戶,其他用戶權(quán)限的位。標(biāo)識設(shè)置用戶ID位是通過在文件所有者權(quán)限位的x位顯示的,當(dāng)x位為s時,x和設(shè)置用戶ID 位被設(shè)置,為S時,x位未被設(shè)置,設(shè)置用戶ID位被設(shè)置。設(shè)置用戶組ID位是通過組用戶權(quán)限的標(biāo)識為x標(biāo)識的,其中同時設(shè)置了設(shè)置用戶組ID 和用戶組執(zhí)行位則為s,只設(shè)置了用戶組ID為S。
轉(zhuǎn)載于:https://www.cnblogs.com/libs5510/p/4793193.html
總結(jié)
- 上一篇: XML文件操作(C#)
- 下一篇: ICSharpCode.SharpZip