資源描述:
《linux與unix shell編程指南》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、下載第一部分shell第1章文件安全與權(quán)限為了防止未授權(quán)用戶訪問你的文件,可以在文件和目錄上設(shè)置權(quán)限位。還可以設(shè)定文件在創(chuàng)建時所具有的缺省權(quán)限:這些只是整個系統(tǒng)安全問題中的一小部分。在這里我們并不想對系統(tǒng)安全問題的方方面面進(jìn)行全面的探討,只是介紹一下有關(guān)文件和目錄的安全問題。本章包含以下內(nèi)容:¥文件和目錄的權(quán)限。¥setuid。¥chown和chgrp。¥umask。¥符號鏈接。創(chuàng)建文件的用戶和他(她)所屬于的組擁有該文件。文件的屬主可以設(shè)定誰具有讀、寫、執(zhí)行該文件的權(quán)限。當(dāng)然,根用戶或系統(tǒng)管理員可以改變?nèi)魏纹胀ㄓ脩舻脑O(shè)置。一個文件一經(jīng)
2、創(chuàng)建,就具有三種訪問方式:1)讀,可以顯示該文件的內(nèi)容。2)寫,可以編輯或刪除它。3)執(zhí)行,如果該文件是一個shell腳本或程序。按照所針對的用戶,文件的權(quán)限可分為三類:1)文件屬主,創(chuàng)建該文件的用戶。2)同組用戶,擁有該文件的用戶組中的任何用戶。3)其他用戶,即不屬于擁有該文件的用戶組的某一用戶。1.1文件當(dāng)你創(chuàng)建一個文件的時候,系統(tǒng)保存了有關(guān)該文件的全部信息,包括:¥文件的位置。¥文件類型。¥文件長度。¥哪位用戶擁有該文件,哪些用戶可以訪問該文件。¥i節(jié)點(diǎn)。¥文件的修改時間。¥文件的權(quán)限位。讓我們使用ls-l命令,來看一個典型的文件
3、:2第一部分shell下載下面讓我們來分析一下該命令所得結(jié)果的前面兩行,看看都包含了哪些信息:total4232:這一行告訴我們該目錄中所有文件所占的空間。-rwxr-xr-x:這是該文件的權(quán)限位。如果除去最前面的橫杠,這里一共是9個字符,他們分別對應(yīng)9個權(quán)限位。通過這些權(quán)限位,可以設(shè)定用戶對文件的訪問權(quán)限。這9個字符可以分為三組:rwx:文件屬主權(quán)限這是前面三位r-x:同組用戶權(quán)限這是中間三位r-x:其他用戶權(quán)限這是最后三位后面我們還將對這些權(quán)限位作更詳細(xì)的介紹。出現(xiàn)在r、w、x位置上的橫杠表示相應(yīng)的訪問權(quán)限被禁止。1該文件硬鏈接的數(shù)
4、目。root文件的屬主。root文件的屬主root所在的缺省組(也叫做root)。3578用字節(jié)來表示的文件長度,記住,不是K字節(jié)!Oct1404:44文件的更新時間。dmesg文件名。1.2文件類型還記得前面一節(jié)所提到的文件權(quán)限位前面的那個字符嗎?我們現(xiàn)在就解釋一下這個橫杠所代表的意思,文件類型有七種,它可以從ls-l命令所列出的結(jié)果的第一位看出,這七種類型是:d目錄。l符號鏈接(指向另一個文件)。s套接字文件。b塊設(shè)備文件。c字符設(shè)備文件。p命名管道文件。-普通文件,或者更準(zhǔn)確地說,不屬于以上幾種類型的文件。1.3權(quán)限讓我們用tou
5、ch命令創(chuàng)建一個文件:$touchmyfile現(xiàn)在對該目錄使用ls-l命令:第1章文件安全與權(quán)限3下載我們已經(jīng)創(chuàng)建了一個空文件,正如我們所希望的那樣,第一個橫杠告訴我們該文件是一個普通文件。你將會發(fā)現(xiàn)所創(chuàng)建的文件絕大多數(shù)都是普通文件或符號鏈接文件(后面將會出現(xiàn)更多的符號鏈接文件)。文件屬主權(quán)限組用戶權(quán)限其他用戶權(quán)限r(nóng)w-r--r—接下來的三個權(quán)限位是文件屬主所具有的權(quán)限;再接下來的三位是與你同組用戶所具有的權(quán)限,這里是admin組;最后三位是其他用戶所具有的權(quán)限。在該命令的結(jié)果中,我所屬于的缺省組也顯示了出來。下面是對該文件權(quán)限的精確描
6、述:表1-1ls-l命令輸出的含義(第一個字符)-普通文件(接下來的三個字符)rw-文件屬主的權(quán)限(再接下來的三個字符)r--同組用戶的權(quán)限(最后三個字符)r--其他用戶的權(quán)限因此,這三組字符(除了第一個字符)分別定義了:1)文件屬主所擁有的權(quán)限。2)文件屬主缺省組(一個用戶可以屬于很多的組)所擁有的權(quán)限。3)系統(tǒng)中其他用戶的權(quán)限。在每一組字符中含有三個權(quán)限位:r讀權(quán)限w寫/更改權(quán)限x執(zhí)行該腳本或程序的權(quán)限這里我們采用另外一種方式來表示剛才所列出myfile的文件權(quán)限:-rw-r--r--文件類型為普通文件文件屬主可以讀、寫同組用戶可以
7、讀其他用戶可以讀你可能已經(jīng)注意到了,myfile在創(chuàng)建的時候并未給屬主賦予執(zhí)行權(quán)限,在用戶創(chuàng)建文件時,系統(tǒng)不會自動地設(shè)置執(zhí)行權(quán)限位。這是出于加強(qiáng)系統(tǒng)安全的考慮。必須手工修改這一權(quán)限位:后面講到umask命令時,你就會明白為什么沒有獲得執(zhí)行權(quán)限。然而,你可以針對目錄設(shè)置執(zhí)行權(quán)限位,但這與文件執(zhí)行權(quán)限位的意義有所不同,這一點(diǎn)我們將在后面討論。上面這段關(guān)于權(quán)限位的內(nèi)容可能不太好理解,讓我們來看幾個例子(見表1-2)。更令人迷惑的是,對于文件屬主來說,在只有讀權(quán)限位被置位的情況下,仍然可以通過文件重定向的方法向該文件寫入。過一會兒我們就會看到,
8、能否刪除一個文件還依賴于該文件所在目錄權(quán)限位的設(shè)置。表1-2文件權(quán)限及含義權(quán)限所代表的含義r--------文文件屬主可讀,但不能寫或執(zhí)行r--r-----文文件屬主和同組用戶(一般來說,是文件屬主所在的缺