umask值與文件和目錄的權限
1.1 -R參數設置目錄權限(chmod)
1.2 權限字母說明
1.3umask說明
1、umask的值決定着文件和目錄的權限,創建文件默認最大權限爲666(-rw-rw-rw-),默認創建的文件沒有可執行權限x位。
2、對於文件來說,umask的設置是在假定文件擁有八進制666的權限上進行的,文件的權限就是666減去umask(umask的各個位數字也不能大於6,如,077就不符合條件)的掩碼數值;重點在接下來的內容,如果umask的部分位或全部位爲奇數,那麼,在對應爲奇數的文件權限位計算結果分別再加1就是最終文件權限值。
創建目錄默認最大權限777(-rwx-rwx-rwx),默認創建的目錄屬主是有x權限,允許用戶進入。
對於目錄來說,umask的設置是在假定文件擁有八進制777權限上進行,目錄八進制權限777減去umask的掩碼數;
3、umask越小,文件和目錄的權限越大,默認的umask值爲022,即在主和組都是root時,文件和目錄的權限爲644(-rw-r--r--)和755(drwxr-xr-x);
4、先設置umask的值,如umask 222 然後再mkdir d222,touch f222,然後再ll=ls -l,這樣umask值纔會生效;
5、umask值的控制腳本
6、umask博文網址
http://oldboy.blog.51cto.com/2561410/1060032
1.4通過umask值讀取文件和目錄權限的三種方法
1.4.1加減法推算(簡單好用,推薦)
文件權限的一般計算方法: 默認文件權限計算方法 1)假設umask值爲:022(所有位爲偶數) 6 66 ==>文件的起始權限值 0 2 2- ==>umask的值 --------- 6 4 4 2)假設umask值爲:045(其他用戶組位爲奇數) 6 66 ==>文件的起始權限值 0 4 5- ==>umask的值 --------- 6 21 ==>計算出來的權限。由於umask的最後一位數字是5,所以,在其他用戶組位再加1。 0 0 1 + --------- 622 ==>真實文件權限 默認目錄權限計算方法 7 77 ==>目錄的起始權限值 0 22 - ==>umask的值 --------- 7 55
實例1-1:umask所有位全爲偶數時
[root@oldboy oldboy]# umask 0022 #→umask當前數值 [root@oldboy oldboy]# umask 044 #→更改爲044 [root@oldboy oldboy]# umask 0044 [root@oldboy oldboy]# mkdir umask_test #→建目錄測試 [root@oldboy oldboy]# ls -ld umask_test drwx-wx-wx 2 root root 4096 Nov 12 19:21 umask_test#→對應數字權限爲733,是不是符合上面的計算方法? [root@oldboy oldboy]# touch umask_test.txt [root@oldboy oldboy]# ls -l umask_test.txt -rw--w--w- 1 root root 0 Nov 12 19:21umask_test.txt #→對應數字權限爲622,是不是符合上面的計算方法
實例1-2umask值的部分或全部位爲奇數時
[root@oldboy oldboy]# umask 0023 [root@oldboy oldboy]# mkdir dir [root@oldboy oldboy]# touch file [root@oldboy oldboy]# ls -l 總計 4 drwxr-xr-- 2 root root 4096 11-15 01:04 dir #→對應數字權限爲754 -rw-r--r-- 1 root root 0 11-15 01:04 file #→對應數字權限爲644 提示:根據前面的計算方法,當umask爲0023時,dir的權限應該是754,而file的權限應該爲643,但是由於umask的其他組位爲奇數,因此最終權限爲其他組位加1,即643加001(對應實踐結果644)。注意:umask爲偶數的位不要加1
實例1-3umask值的所有位爲奇數時
[root@oldboy oldboy]# umask 0551 [root@oldboy oldboy]# umask 0551 umask 爲0551 根據掩碼方法計算:目錄權限爲226,文件權限115,而實際文件權限爲226(umask的三個權限位都是奇數,所以,每個位分別加1就是正確的權限) [root@oldboy oldboy]# mkdir dir5 [root@oldboy oldboy]# touch file5 [root@oldboy oldboy]# ls -l 總計 4 d-w--w-rw- 2 root root 4096 11-15 01:27 dir5 #→目錄對應數字權限爲226 --w--w-rw- 1 root root 0 11-15 01:27 file5 #→目錄對應數字權限爲226 再來一例驗證下: [root@oldboy oldboy]# umask 0333 [root@oldboy oldboy]# umask 0333 umask 爲0333 根據掩碼方法計算:目錄權限爲444,文件權限333,而實際文件權限爲444(umask的三個位都是奇數,所以,每個位分別加1就是正確的權限) [root@oldboy oldboy]# mkdir dir3 [root@oldboy oldboy]# touch file3 [root@oldboy oldboy]# ls -l|grep 3 dr--r--r-- 2 root root 4096 11-15 01:30 dir3 #→目錄對應數字權限爲444 -r--r--r-- 1 root root 0 11-15 01:30 file3 #→目錄對應數字權限爲444
1.4.2 通過8進制字母符號計算
[root@oldboyoldboy]# umask 551 umask值爲551,對應的權限爲-r-xr-x--x,即所有的文件和目錄都取消權限中的-r-xr-x--x權限。 文件權限:【-rw-rw-rw-】-【-r-xr-x--x】=【--w--w--rw-】=226(文件的x位上沒有x,就不用取消了) 目錄權限:【-rwxrwxrwx】-【-r-xr-x--x】=【--w--w--rw-】=226(目錄的x位上有x,直接取消即可) 繼續拿前面的例子驗證: [root@oldboyoldboy]# umask 333 umask值爲333,對應的權限爲-wx-wx-wx,即所有的文件和目錄都取消權限中的-wx-wx-wx權限。 文件權限:【-rw-rw-rw-】-【-wx-wx-wx】=【-r--r--r--】=444(文件的x位上沒有x,就不用取消了) 目錄權限:【-rwxrwxrwx】-【-wx-wx-wx】=【-r--r--r--】=444(目錄的x位上有x,直接取消即可)
1.4.3 通過二進制方法計算(二進制轉換軟件)
0022 0 2 2 ---------- #→八進制轉換二進制 0 10 10 說明:把umask值八進制轉換成二進制 6 6 6 ------------ #→八進制轉換二進制 110 110 110 說明:把文件默認最大權限值八進制轉換成二進制 0 10 10 #→umask二進制 ------------- #→與運算 110 110 110 #→文件最大權限二進制 ------------- 000 010 010 ------------- #→轉換八進制 0 2 2 說明:最後得到的值是022,然後使用666減去022,那麼文件的創建權限就是644 [root@oldboyoldboy]# umask 551 [root@oldboyoldboy]# umask 0551 5 5 1 ------------- #→轉換二進制 101 101 001 #→umask二進制 ------------- #→與運算 110 110 110 #→文件最大權限二進制 ------------- 100 100 000 ------------- #→轉換八進制 4 4 0 說明:最後得到的值是440,然後使用666減去440,那麼文件的創建權限就是226。
1.5 企業各服務器之間的權限說明