Unix系統(tǒng)文件使用chmod的一些例子
Unix系統(tǒng)文件的屬性和管理員可以使用命令chmod來設(shè)置或改變文件的權(quán)限。chmod有幾種不同的使用方法,可以直接使用八進(jìn)制的權(quán)限表示方式設(shè)置屬性,或者使用屬性字母來設(shè)置或更改文件的屬性,不同的使用方法要求不同的 chmod參數(shù),下面是使用chmod的一些例子:
- chmod 750 a.out :改變a.out的權(quán)限為750;
- chmod a+x a.out :對(duì)所有用戶增加a.out的執(zhí)行權(quán)限,
- a(All)表示所有用戶;
- chmod u=rwx a.out :設(shè)置屬主的權(quán)限為讀、寫和執(zhí)行
- u(user)表示屬主用戶;
- chmod g+rw a.out :增加同組用戶的讀寫權(quán)限,
- g(group)表示同組用戶;
- chmod o-w a.out :減少其他用戶的寫權(quán)限,
- o(others)表示其他用戶;
- chmod go= a.out :清除同組和其他用戶的所有權(quán)限;
- chmod o=u-w a.out :設(shè)置其他用戶的權(quán)限為減去寫權(quán)限的屬主權(quán)限;
權(quán)限755是最常見的文件權(quán)限設(shè)置,這種屬性的文件允許其他用戶可以訪問這個(gè)文件,但不可以更改,如果不打算讓其他用戶訪問文件,文件的存取權(quán)限可以設(shè)置為700。文件在創(chuàng)建的時(shí)候,Unix系統(tǒng)使用掩碼來決定文件的權(quán)限,掩碼的二進(jìn)制對(duì)應(yīng)位為1的,文件屬性的對(duì)應(yīng)位就設(shè)置為0,例如當(dāng)掩碼的八進(jìn)制表示為022時(shí)(二進(jìn)制為000010010),創(chuàng)建的文件權(quán)限就為755(111101101)。
文件掩碼使用umask命令來設(shè)置,例如使用 “umask 027 ” 設(shè)置掩碼為027,則創(chuàng)建的文件權(quán)限為750,其他用戶將對(duì)這個(gè)文件沒有任何權(quán)限。可以在啟動(dòng)資源文件或者在登錄類別中設(shè)置中設(shè)置用戶的掩碼。
目錄需要設(shè)置執(zhí)行位,以允許用戶能使用cd命令進(jìn)入這個(gè)目錄中。
當(dāng)一個(gè)文件的權(quán)限設(shè)置完畢之后,在一個(gè)進(jìn)程試圖訪問這個(gè)文件時(shí),Unix系統(tǒng)就比較這個(gè)進(jìn)程的屬主和屬組與文件的屬主和屬組,判斷這個(gè)進(jìn)程是否具備訪問權(quán)限。由于每個(gè)進(jìn)程的屬主和屬組標(biāo)識(shí)是由啟動(dòng)這個(gè)進(jìn)程的用戶決定的,因此一個(gè)用戶啟動(dòng)的進(jìn)程就具備其本身對(duì)文件的訪問權(quán)限。
除了讀、寫和執(zhí)行權(quán)限以外,對(duì)于可執(zhí)行的程序還有另外兩個(gè)非常重要的屬性:設(shè)置屬主身份(setuid, Set User ID)權(quán)限和設(shè)置組身份(setgid, Set Group ID)權(quán)限,這兩個(gè)屬性允許某個(gè)程序可以更改自己的進(jìn)程標(biāo)識(shí)為程序文件屬主或組,因而就可以具備該程序文件屬主或?qū)俳M的訪問權(quán)限,而不再僅僅是啟動(dòng)進(jìn)程的用戶的訪問權(quán)限,這樣就能完成特定的任務(wù)。
很多Unix系統(tǒng)程序,例如su,就是通過這個(gè)特性來完成從執(zhí)行進(jìn)程時(shí)的普通用戶身份到root用戶身份的轉(zhuǎn)化的,因此這兩個(gè)屬性對(duì)于Unix系統(tǒng)安全至關(guān)重要。不是必要的Unix系統(tǒng)程序,不能具備這些屬性。
【編輯推薦】