最近開始學習linux ,看完馬哥的linux課程關于umask的這個部分, 寫這篇博客希望加深下我對umask的理解 和對umask不太清楚的博友一些幫助。
1 umask 是什么
當我們登錄系統之后創建一個文件是會有一個默認權限的,那么這個權限是怎么來的呢?這就是umask干的事情。umask用于設置用戶創建文件或者目錄的默認權限,umask設置的是權限的“補碼”,而我們常用chmod設置的是文件權限碼。一般在/etc/profile,HOME/.bashprofile或者HOME/.profile中設置umask值。
2 umask是用來做什么的
默認情況下的umask值是022(可以用umask命令查看),此時你建立的文件默認權限是644(6-0,6-2,6-2),建立的目錄的默認 權限是755(7-0,7-2,7-2),可以用ls -l驗證一下, 現在應該知道umask的用途了吧,它是為了控制默認權限的。
[root@bogon test]# iduid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023[root@bogon test]# umask0022[root@bogon test]# touch a.txt[root@bogon test]# ls -ltotal 0-rw-r--r--. 1 root root 0 Jul 3 00:40 a.txt[root@bogon test]# mkdir b[root@bogon test]# ls -ltotal 0-rw-r--r--. 1 root root 0 Jul 3 00:40 a.txtdrwxr-xr-x. 2 root root 6 Jul 3 00:41 b
從上面可以看到, root 的umask是022(第一個0 代表特殊權限位,這里先不考慮), 創建的文件默認權限是644,創建的目錄是755。
3 基本權限講解
講解umask的使用之前, 需要先講解下文件的基本權限
linux文件權限
| r | w | x | |
| 文件 | 可以查看文件內容 | 可以修改文件 | 可以把文件啟動為一個運行的程序 | 
| 目錄 | 可以ls查看目錄中的文件名 | 可以在目錄中創建或者刪除文件(只有w權限沒法創建,需要x配合) | 可以使用cd 進入這個目錄ls-l顯示目錄內文件的元數據的信息 | 
4 umask計算權限
對于文件和目錄來說, 最大的權限其實都是777,但是執行權限對于文件來說,很可怕,而對目錄來說執行權限是個基本權限。所以默認目錄的最大權限是777,而文件的默認最大權限就是666。
對于root用戶的umask=022這個來說,777權限二進制碼就是(111)(111)(111),022權限二進制碼為(000)(010)(010)。
所有權限二進制的1:代表有這個權限 umask二進制1:代表要去掉這個權限,不管你原來有沒有權限,你最終一定沒有這個權限。 umask二進制的0:代表我不關心對應位的權限,你原來有權限就有權限,沒有就沒有, 我不影響你。umask為002的文件默認權限計算方法
| 所有者 r | 所有者 w | 所有者 x | 所在組 r | 所在組 w | 所在組 x | 其他 r | 其他 w | 其他 x | |
| 所有權限777 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 學習交流 
 
 熱門圖片 猜你喜歡的新聞 新聞熱點 2024-06-26 22:28:41 2024-06-26 22:26:16 2024-06-26 22:23:01 2024-06-25 19:29:23 2024-06-25 19:22:14 2024-06-25 19:19:15 疑難解答 |