前言
起源是一道題1:如果你的umask設置為022,缺省的你創(chuàng)建的文件權限為?
這讓我回憶起被問過的另外一道題2: 777表示什么權限?
用戶組說明
-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc
- 第一個字符代表文件(-)、目錄(d),鏈接(l)
- 其余字符每3個一組(rwx),讀(r)、寫(w)、執(zhí)行(x)
- 第一組rwx:文件所有者的權限是讀、寫和執(zhí)行
- 第二組rw-:與文件所有者同一組的用戶的權限是讀、寫但不能執(zhí)行
- 第三組r--:不與文件所有者同組的其他用戶的權限是讀不能寫和執(zhí)行
- 也可用數(shù)字表示為:r=4,w=2,x=1 ,因為rwx代表三位二進制的話,正好計算出這幾個數(shù)字。
數(shù)字權限說明
那么回到前面題2,777是三位八進制數(shù),對應111111111,則代表三個組都可讀可寫可執(zhí)行,我們可以這么用:
chmod 755 abc //chmod 改變文件abc的權限為文件所有者可讀可寫可執(zhí)行,同組和其他組用戶是可讀可執(zhí)行
umask說明
umask是權限掩碼,代表默認不要的權限,它是基于文件最大默認值666,文件夾777的基礎上取計算該用戶新建對象的默認權限的。
比如,題1,那么創(chuàng)建文件的默認權限就是666-022=644,也就是-rw-r--r--
umask是用來做什么的
默認情況下的umask值是022(可以用umask命令查看),此時你建立的文件默認權限是644(6-0,6-2,6-2),建立的目錄的默認 權限是755(7-0,7-2,7-2),可以用ls -l驗證一下, 現(xiàn)在應該知道umask的用途了吧,它是為了控制默認權限的。
[root@bogon test]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@bogon test]# umask
[root@bogon test]# touch a.txt
[root@bogon test]# ls -l
total 0
-rw-r--r--. 1 root root 0 Jul 3 00:40 a.txt
[root@bogon test]# mkdir b
[root@bogon test]# ls -l
total 0
-rw-r--r--. 1 root root 0 Jul 3 00:40 a.txt
drwxr-xr-x. 2 root root 6 Jul 3 00:41 b
從上面可以看到, root 的umask是022(第一個0 代表特殊權限位,這里先不考慮), 創(chuàng)建的文件默認權限是644,創(chuàng)建的目錄是755。
在了解umask的使用之前, 需要先講解下文件的基本權限
linux文件權限
|
r |
w |
x |
文件 |
可以查看文件內(nèi)容 |
可以修改文件 |
可以把文件啟動為一個運行的程序 |
目錄 |
可以ls查看目錄中的文件名 |
可以在目錄中創(chuàng)建或者刪除文件(只有w權限沒法創(chuàng)建,需要x配合) |
可以使用cd 進入這個目錄ls-l顯示目錄內(nèi)文件的元數(shù)據(jù)的信息 |
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。