今天接觸到了掩碼,從博客上總結了一些關于掩碼解釋比較全面的分析,和大家分享下。
文件權限是linux系統中的一種安全機制,通過設置不同的權限,可以達到限制用戶操作的目的,有效地保證了文件的完整性。
默認的情況下,創建一個文件的權限為”rw-r–r–”,而創建一個目錄的權限為rwxr-xr-x”,如果默認的不符合用戶的需求,可以用chmod命令進行設置,但這樣的效率很低。
linux提供了一個方便的工具umask,可以用來設置文件的默認掩碼。
文件的默認權限就是umask設置的掩碼和系統中默認的最大權限碼做異或運算,其結果就是文件的默認權限。
對于文件來說,這一數字的最 大值分別是6。系統不允許你在創建一個文本文件時就賦予它執行權限,必須在創建后用chmod命令增加這一權限。
目錄則允許設置執行權限,這樣針對目錄來說,umask中各個數字最大可以到7。
Linux約定:
新建文件的權屬是-rw-rw-rw-,權限值是666
新建目錄的權屬是drwxrwxrwx,權限值是777
語法:
umask [選項] [權限掩碼]
-S 以字符的方式來表示權限掩碼
例:
一、設置文件的權限掩碼,使文件自動生成默認權限為rw-rw—-
rw-rw—-對應的數字就是660, 其實每一位用三位2進制來表示,所以3位二進制組成十進制數就得出660,由于要生成的文件默認權限改變,其權限掩碼值為:666-660=006
linux@server:~$ umask 006
linux@server:~$ touch abc
linux@server:~$ ll abc
-rw-rw—- 1 linux linux 0 2010-12-11 21:44 abc
umask 777 #創建文件會沒有任何權限,他和chmod是相反的。
umask 000 #具有所有權限。但文件沒有x權限。
注意:
我們只要記住umask是從權限中“拿走”相應的位即可。
對于文件的執行權限(即X權限)使用umask命令是無法使其起作用的,系統強制關閉文件的X默認執行權限,只能通過chmod修改
umask只對當前shell環境起作用。