linux中修改用戶創建文件時的缺省權限——umask

一、umask是什麼?

  1. linux系統中,用戶登錄到系統中後,創建一個文件的時候,這個文件有一個默認的權限,該默認權限在linux中由umask這個命令來管理。
  2. 直接使用umask命令可以查看並修改當前shell中用戶創建文件的缺省權限。即修改完後關閉該shell再重新開啓shell會發現上次修改未起作用,這主要是由於還有一個系統默認的umask的設置,一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中設置umask值。
  3. umask的值實際上可以參考chmod的時候文件權限的數字值,但是umask是要“拿走”相應的位而已:

    (1)文件的rwx權限對應的數字分別是4、2、1.
    (2)如果umask的值是0002,第一個0與特殊權限有關,暫時忽略,後邊的002,每一位的含義分別討論當前用戶(u),當前所在的組(g),其他用戶(o)等的權限,u的權限減去0爲權限不變(rw-),g的權限減去0爲權限不變(rw-),o的權限減去2爲減去w權限(r--).

二、umask在業務中有什麼用?

  1. 通常在程序中使用umask命令,比如php中有函數umask(0002),可以在當前程序中設置默認的創建文件的權限爲rw-rw-r--,但是該程序結束後就會直接恢復原來的umask的值。
  2. 實際上umask就是爲了設置默認的創建文件的權限,使用chmod也能實現相同的業務功能,所以,umask的關鍵詞就是“默認權限”。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章