說說Linux中的umask

前言

Linux文件權限這塊是Linux學習的基礎,我們在學習linux權限的時候,都有學過umask命令。在linux系統中,我們創建一個新的文件或者目錄的時候,這些新的文件或目錄都會有默認的訪問權限,umask命令與文件和目錄的默認訪問權限有關。若用戶創建一個文件,文件的最大訪問權限爲 rw-rw-rw- ,創建目錄的最大權限 rwxrwxrwx ,而umask值則表明了需要從最大權限中去掉哪些權限來成爲最終的默認權限值。也就是說我們想控制Linux系統中新生成文件的默認權限,就是通過系統文件或者目錄最大權限減去umask碼值來實現的。

如何計算umask值

對於如何計算umask值。其實我們只要記住umask是從權限中“拿走”相應的位即可。需要記住的是,這不是簡單的數字直接相減,而是將數字轉換成對應的字母權限之後再做"減法"。例如,對於umask值002,相應的文件和目錄缺省創建權限是什麼呢?

  第一步,我們首先寫下具有全部最大權限,目錄即777 (所有用戶都具有讀、寫和執行權限),文件是666 (所有用戶都具有讀、寫)。

  第二步,在下面一行按照umask值寫下相應的位,在本例中是002。

  第三步,在接下來的一行中記下上面兩行中沒有匹配的位。這就是目錄的缺省創建權限。

這就是上面的例子, 其中umask值爲002:

  1) 文件的最大權限 rwx rwx rwx (777)

  2) umask值爲002 --- --- -w-

  3) 目錄權限 rwx rwx r-x (775) 這就是目錄創建缺省權限

  4) 文件權限 rw- rw- r-- (664) 這就是文件創建缺省權限

下面是另外一個例子,假設這次umask值爲022:

  1) 文件的最大權限 rwx rwx rwx (777)

  2 ) umask值爲022 --- -w- -w-

  3) 目錄權限 rwx r-x r-x (755) 這就是目錄創建缺省權限

  4) 文件權限 rw- r-- r-- (644) 這就是文件創建缺省權限


如何查看和設置umask值

在Linux中查看當前用戶的umask值,只需要輸入umask命令即可。

 可以看到當前root用戶的umask值是0022,至於第一位中的0是特殊權限,這裏不需要考慮。如果要修改umask值,只需要在umask命令後面寫上具體得值就行

上面這種通過命令設置得umask值,只在當前會話有效,也就是說用戶退出之後重新連接就會恢復之前得umask,那麼怎麼永久修改用戶的umask值呢,這也很簡單,我們只需要修改/ets/profile文件中對應得umask就行,系統在連接的時候回去profile文件去讀取。打開profile文件,我們可以找到下面內容

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi

 如果uid大於199則umask爲002,否則umask值爲022,我們在這裏修改umask值則爲永久修改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章