Unix與Windows文件權(quán)限控制上的差異
Unix操作系統(tǒng)在文件權(quán)限控制上,跟Windows操作系統(tǒng)上還是有比較大的差異。簡單的來說,Unix的文件權(quán)限控制要比Windows操作系統(tǒng)復雜的多。雖然其維護起來具有一定的難度,但是這也保證了Unix操作系統(tǒng)的文件控制要比Windows操作系統(tǒng)的文件控制安全的多。下面筆者就對兩個操作系統(tǒng)在文件權(quán)限控制上的差異做一些分析。如果有說得不對的地方,還請大家多多批評改正。
如下圖,無論是微軟操作系統(tǒng)還是Unix操作系統(tǒng),其權(quán)限控制的基本模型就如下圖所示。不過他們在具體的實現(xiàn)上有很大的差異。
差異一:文件執(zhí)行權(quán)限上的差異分析。
假設現(xiàn)在有用戶A,其在Unix操作系統(tǒng)上建立了一個文件text。通常情況下,這個用戶A就是文件text的所有者。所有權(quán)這對文件具有完全控制的權(quán)限,即具有讀、寫、執(zhí)行的權(quán)限。而在Windos操作系統(tǒng)下,則沒有控制的這么嚴格。在Windows下其權(quán)限只有讀、寫的控制,而沒有細化到執(zhí)行的權(quán)限。這就是兩個操作系統(tǒng)在文件權(quán)限控制上的一個重要差異。Unix在對文件專門進行了執(zhí)行權(quán)限的控制,這對于Unix操作系統(tǒng)的安全性具有很大的幫助。如現(xiàn)在有一個程序開發(fā)小組,其成員包括用戶A與用戶B。他們在開發(fā)一個磁盤清理的程序。為了安全起見,這個腳本文件當然不能夠隨意執(zhí)行。不然的話很可能會造成磁盤文件意外刪除的。為此用戶A就可以控制,用戶B可以查看或者編輯這個腳本文件,但是不能夠執(zhí)行。要測試的話,必須有用戶A來進行。這就可以保障這個腳本文件不會被未經(jīng)授權(quán)的用戶執(zhí)行。但是在Windows系統(tǒng)下就沒有這方面的控制。
差異二:相同的組不同的用戶具有不同的權(quán)限。
在Unix系統(tǒng)中,即使相同組的用戶,默認情況下其對于文件的權(quán)限也是不同的。如現(xiàn)在一個組其有用戶A與用戶B。現(xiàn)在用戶A創(chuàng)建了一個test文件。默認情況下用戶A與用戶B對這個文件具有不同的權(quán)限。如用戶A對這個文件具有讀、寫、執(zhí)行的權(quán)限。但是用戶B對這個文件則只有讀寫的權(quán)限。但是在Windows系統(tǒng)下,則這方面不是這么控制的。在默認情況下,Windows操作系統(tǒng)下同一個組的用戶往往具有相同的權(quán)限。
在Unix系統(tǒng)中,默認情況下組具有文件的讀、寫權(quán)限。文件所有者自有一組組權(quán)限,它優(yōu)先于用戶組的組權(quán)限。當用戶放棄了文件的所有權(quán)之后(如把文件的所有權(quán)轉(zhuǎn)移給了其他用戶),則其就會自動繼承用戶組的組權(quán)限。如果現(xiàn)在這個組中的用戶A已經(jīng)創(chuàng)建了一個文件text。那么后來加入到這個組中的用戶,也對這個文件具有讀寫的權(quán)限。不過要注意,沒有執(zhí)行權(quán)限。也就是說,通常情況下只有root帳戶與文件的所有權(quán)者對文件具有執(zhí)行權(quán)限。其他的用戶都不具有這個權(quán)限。當然文件的所有者人與root帳戶可以把這個文件執(zhí)行權(quán)限賦予給其他人。這里要注意,只有文件的所有權(quán)人與root帳戶才可以更改文件的權(quán)限,其他用戶都不可以。這也是筆者下面要談到的兩個系統(tǒng)的第三個差異。
差異三:誰可以更改文件的權(quán)限。
在Windows操作系統(tǒng)中,往往只要對這個文件具有寫權(quán)限的人就可以這個文件的權(quán)限。如用戶A創(chuàng)建了一個文件。同時他允許用戶B對這個文件具有完全控制權(quán)限。那么這個用戶B就可以修改用戶的權(quán)限,如用戶B可以讓其他組的用戶也可以修改這個文件。顯然這會給文件帶來一定的安全隱患。
在Unix操作系統(tǒng)上,這個權(quán)限控制就相對安全一點。因為通常情況下,只有文件的所有權(quán)人與root帳戶才能夠修改文件的權(quán)限。如現(xiàn)在用戶A創(chuàng)建了一個text文件。默認情況下用戶A具有這個文件的讀寫執(zhí)行的全部權(quán)限。而同一個組的用戶具有這個文件的讀寫權(quán)限。注意即使用戶B具有文件test的寫權(quán)限,其仍然不能夠變更這個文件的權(quán)限。如把這個文件的讀權(quán)限賦予給其他沒有這個讀權(quán)限的用戶。或者說把其他用戶的寫權(quán)限取消掉等等,都是不行的。即使用戶A給了用戶B讀、寫、執(zhí)行等文件的全部權(quán)限,用戶B也不能夠更改這個文件的權(quán)限,或者把權(quán)限賦予給其他用戶。簡單的說,無論其他用戶是否對文件具有完全控制權(quán)限,只有root 用戶與文件的所有權(quán)者才能夠更改文件的權(quán)限。這是Unix系統(tǒng)的一個強制限制。
另外需要說明的是,在Unix系統(tǒng)下文件權(quán)限包括三方面的內(nèi)容,即所有權(quán)者權(quán)限、同組其他成員的權(quán)限、組用戶的權(quán)限。默認情況下,所有權(quán)者對文件具有讀寫二個權(quán)限。同組其他成員與組用戶都有讀寫文件的權(quán)限。不同的Unix版本在這方面可能也有所差異。如有的Unix版本的操作系統(tǒng),組用戶與其他成員的權(quán)限只有讀,而沒有寫。也就是說,后面有用戶加入到這個組,則這用戶對原有的文件也只有讀的權(quán)限。也就是說,文件或者目錄創(chuàng)建之后,系統(tǒng)會自動賦予他們一組默認的權(quán)限。這組默認的權(quán)限是由一個叫做權(quán)限屏蔽字的參數(shù)所確定的。如筆者現(xiàn)在使用的一個Unix系統(tǒng),一個文件的默認設置中所有的用戶都具有讀取的權(quán)限,但是只有文件的所有權(quán)人才具有文件的寫入權(quán)限。系統(tǒng)工程師可以根據(jù)自己的實際需要更改這個默認設置。如他希望同組的其他用戶也具有文件寫入的權(quán)限。為此系統(tǒng)工程師就需要使用chmod命令來改變這個默認設置。
如果要更改文件的權(quán)限,Unix操作系統(tǒng)提供了兩種方式,分別為相對模式與絕對模式。相對模式是在原有的權(quán)限基礎上進行修改,chmod權(quán)限修改命令只修改命令行中指定的權(quán)限,而其他權(quán)限將保持不變。而絕對模式則是直接設置文件的最終權(quán)限。而在Wincows系統(tǒng)中,則只能夠通過相對模式來更改文件權(quán)限(雖然Windows系統(tǒng)中沒有這個相對模式的概念)。在絕對模式中,分別利用三個八進制數(shù)字表示三個權(quán)限。如4表示讀權(quán)限、2表示寫權(quán)限、1表示執(zhí)行權(quán)限。如果系統(tǒng)工程師需要為文件設置不同的權(quán)限,只需要進行簡單的加減計算即可。如需要給某個用戶某個文件的讀寫執(zhí)行權(quán)限,則就是對他們相加即4+2+1=7即可。這個權(quán)限設計很容易記憶,很很容易實現(xiàn)。故筆者在Unix系統(tǒng)中,基本上都是采用絕對模式來更改文件的權(quán)限。利用相對模式還需要先了解原有的權(quán)限情況,然后再進行配置,反而操作起來麻煩一點。
差異四:Unix文件權(quán)限控制的漏洞。
雖然Unix提供了比較復雜的權(quán)限控制體系,但是人無完人,其還是存在比較大的漏洞。如現(xiàn)在用戶A創(chuàng)建了一個文件text。其設置只有其自己對這個文件具有讀寫權(quán)限,其他用戶都沒有對這個文件具有寫權(quán)限。那么這個文件能否被其他用戶刪除呢?答案是可以的。因為文件權(quán)限不僅跟文件本身的權(quán)限相關,還跟目錄的權(quán)限有關。如果這個目錄允許用戶B具有修改的權(quán)限,那么用戶B即使不具有用戶A創(chuàng)建的文件test的人和權(quán)限,其也可以刪除這個文件。為此,如果用戶B懊惱用戶A不給其看文件中的內(nèi)容,那么其一氣之下就把這個文件給刪除了。那么不是會給用戶A造成不必要的損失嗎?其實這種情況不僅Unix系統(tǒng)存在,在Windows操作系統(tǒng)下也存在。
如在Windows下,用戶A把某個文件設置為只讀,而且還為這個文件設置了密碼。但是只要其他用戶對這個目錄具有修改的權(quán)利,那么其他用戶還是可以在文件所有權(quán)者不知情的情況下刪除這個文件。即使其有只讀與文件密碼保護,也照刪不誤。故要做到文件真正的安全,還需要文件權(quán)限與目錄權(quán)限配合使用才行。
關鍵字:文件權(quán)限、chmod
新文章:
- CentOS7下圖形配置網(wǎng)絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機IP講解
- CentOS7使用hostapd實現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認iptable規(guī)則詳解