umask 學習筆記

2021-07-23 05:45:45 字數 1755 閱讀 6433

我們建立檔案的預設許可權是怎麼來的?如何改變這個預設許可權呢?

umask是什麼? 

一 許可權掩碼umask

umask是chmod配套的,總共為4位(gid/uid,屬主,組權,其它使用者的許可權),不過通常用到的是後3個,例如你用chmod 755 file(此時這檔案的許可權是屬主讀(4)+寫(2)+執行(1),同組的和其它使用者有讀寫許可權)

二 umask的作用

預設情況下的umask值是022(可以用umask命令檢視),此時你建立的檔案預設許可權是644(6-0,6-2,6-2),建立的目錄的預設 許可權是755(7-0,7-2,7-2),可以用ls -l驗證一下哦 現在應該知道umask的用途了吧,它是為了控制預設許可權,不要使預設的檔案和目錄具有全權而設的

三 修改umask值

知道了umask的作用後,你可以修改umask的值了,例如:umask 024則以後建立的檔案和目錄的預設許可權就為642,753了

四 將umask值儲存到環境檔案

若要長期修改umask的值,可以把它寫進/etc/profile或~/.profile或~/.bash_profile中,大家應該知道這幾個檔案是幹什麼用的吧。

如何計算umask值? 

umask命令允許你設定檔案建立時的預設模式,對應每一類使用者(檔案屬主、同組使用者、其他使用者)存在乙個相應的umask值中的數字。對於檔案來說,這一數字的最大值分別是6。系統不允許你在建立乙個文字檔案時就賦予它執行許可權,必須在建立後用chmod命令增加這一許可權。目錄則允許設定執行許可權,這樣針對目錄來說,umask中各個數字最大可以到7。 該命令的一般形式為:umask nnn 其中nnn為umask置000 - 777。 我們只要記住umask是從許可權中「拿走」相應的位即可。 如:umask值為022,則預設目錄許可權為755,預設檔案許可權為644。

[root@vbird test]# umask

[root@vbird test]# touch test1

[root@vbird test]# mkdir test2

[root@vbird test]# ls -l

-rw-rw-r– 1 root root 0 oct 22 00:00 test1

drwxrwxr-x 2 root root 4096 oct 22 00:00 test2/

發現了什麼?呵呵! test1 的屬性為 666-002 = 664 !正確嗎?是的!正確!而 test2 這個目錄呢?就是 777-002 = 775 !也正確!

[root@vbird test]# umask 003

[root@vbird test]# touch test3

[root@vbird test]# mkdir test4

[root@vbird test]# ll

-rw-rw-r– 1 root root 0 oct 22 00:03 test3

drwxrwxr– 2 root root 4096 oct 22 00:03 test4/

嘿!屬性又跟剛剛的不一樣囉!仔細推敲一下為什麼呦!test3 666-003 =663,這是怎麼一回事?! 663 應該是 -rw-rw–wx 才對啊!怎麼會是上面的屬性!呵呵!這裡就要特別的給他強調了!『盡量不要以數字相加減啦!』容易造成類似上面的問題!你應該要這樣想(-rw-rw- rw-) – (——–wx)=-rw-rw-r–這樣就對啦!了解了嗎?不要用十進位制的數字喔!夠能力的話,用二進位制來算,不曉得的話,用 rwx 來算喔!

APUE學習筆記 umask

umask的作用是為程序設定檔案模式建立遮蔽字,也就是說linux中每建立乙個檔案,則檔案許可權取決於umask設定的遮蔽狀態。1 檔案許可權 理解umask之前,先看下檔案許可權。所有檔案型別 目錄檔案 字元特別檔案等 都有訪問許可權,很多人認為只有普通檔案有訪問許可權,這是一種誤解。每個檔案的9...

umask命令學習體會

umask因為需要乙個相逆過程和檔案的x位設定問題,經常會混,發以此文加強記憶 umask 功能說明 指定在建立檔案時預設的許可權掩碼。語 法 umask s 許可權掩碼 補充說明 umask可用來設定 許可權掩碼 許可權掩碼 是由3個八進位制的數字所組成,將現有的訪問許可權減掉許可權掩碼後,即可產...

linux系統學習之Umask

linux系統學習之umask。檔案許可權管理之 umask mask 新建檔案 目錄的預設許可權是由mask決定的 umask 會影響到mask,umask表示要減掉的許可權 shell vim,touch umask 新檔案或目錄許可權 vsftpd umask 新檔案或目錄許可權 samba ...