日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解linux下umask的使用

最近開始學習linux ,看完馬哥的linux課程關(guān)于Umask的這個部分, 寫這篇博客希望加深下我對umask的理解 和對umask不太清楚的博友一些幫助。

1 umask 是什么

當我們登錄系統(tǒng)之后創(chuàng)建一個文件是會有一個默認權(quán)限的,那么這個權(quán)限是怎么來的呢?這就是umask干的事情。umask用于設(shè)置用戶創(chuàng)建文件或者目錄的默認權(quán)限,umask設(shè)置的是權(quán)限的“補碼”,而我們常用chmod設(shè)置的是文件權(quán)限碼。一般在/etc/profile,HOME/.bashprofile或者HOME/.profile中設(shè)置umask值。

2 umask是用來做什么的

默認情況下的umask值是022(可以用umask命令查看),此時你建立的文件默認權(quán)限是644(6-0,6-2,6-2),建立的目錄的默認 權(quán)限是755(7-0,7-2,7-2),可以用ls -l驗證一下, 現(xiàn)在應該知道umask的用途了吧,它是為了控制默認權(quán)限的。

[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
0022
[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 代表特殊權(quán)限位,這里先不考慮), 創(chuàng)建的文件默認權(quán)限是644,創(chuàng)建的目錄是755。

3 基本權(quán)限講解

講解umask的使用之前, 需要先講解下文件的基本權(quán)限

linux文件權(quán)限

 rwx
文件 可以查看文件內(nèi)容 可以修改文件 可以把文件啟動為一個運行的程序
目錄 可以ls查看目錄中的文件名 可以在目錄中創(chuàng)建或者刪除文件(只有w權(quán)限沒法創(chuàng)建,需要x配合) 可以使用cd 進入這個目錄ls-l顯示目錄內(nèi)文件的元數(shù)據(jù)的信息

4 umask計算權(quán)限

對于文件和目錄來說, 最大的權(quán)限其實都是777,但是執(zhí)行權(quán)限對于文件來說,很可怕,而對目錄來說執(zhí)行權(quán)限是個基本權(quán)限。所以默認目錄的最大權(quán)限是777,而文件的默認最大權(quán)限就是666。

對于root用戶的umask=022這個來說,777權(quán)限二進制碼就是(111)(111)(111),022權(quán)限二進制碼為(000)(010)(010)。

  • 所有權(quán)限二進制的1:代表有這個權(quán)限
  • umask二進制1:代表要去掉這個權(quán)限,不管你原來有沒有權(quán)限,你最終一定沒有這個權(quán)限。
  • umask二進制的0:代表我不關(guān)心對應位的權(quán)限,你原來有權(quán)限就有權(quán)限,沒有就沒有, 我不影響你。

umask為002的文件默認權(quán)限計算方法

 所有者 r所有者 w所有者 x所在組 r所在組 w所在組 x其他 r其他 w其他 x 
所有權(quán)限777111111111
umask掩碼002000010010
計算后的值111101101

umask為002的目錄默認權(quán)限計算方法

 所有者 r所有者 w所有者 x所在組 r所在組 w所在組 x其他 r其他 w其他 x 
所有權(quán)限666110110110
umask掩碼002000010010
計算后的值110100100

umask為023的目錄默認權(quán)限計算方法

 所有者 r所有者 w所有者 x所在組 r所在組 w所在組 x其他 r其他 w其他 x 
所有權(quán)限777111111111
umask掩碼023000010011
計算后的值111101100

umask為023的文件默認權(quán)限計算方法

 所有者 r所有者 w所有者 x所在組 r所在組 w所在組 x其他 r其他 w其他 x 
所有權(quán)限666110110110
umask掩碼023000010011
計算后的值110100100

上面就是一個umask的正常計算過程,但是這樣實在是太麻煩了。我們使用如下的簡單的方法快速計算。

  1. 對于目錄,直接使用777-umask即可,就得到了最終結(jié)果。
  2. 對于文件,先使用666-umask。
    1. 如果對應位上為偶數(shù):最終權(quán)限就是這個偶數(shù)值。
    2. 如果上面的對應為上有奇數(shù),就對應位+1。

上面的這個方法計算是非常方便的, 為何得到奇數(shù)要+1呢。

文件的最大權(quán)限是666,都是偶數(shù),你得到奇數(shù),說明你的umask有奇數(shù)啊,讀為4,寫為2,都是偶數(shù),說明你有執(zhí)行權(quán)限的。

就按照上面的umask=023為例,在計算其他用戶權(quán)限的時候6-3=3 ,6是讀寫,3是寫和執(zhí)行,其實應該是讀寫權(quán)限減去讀權(quán)限的得到寫權(quán)限的,相當于我們多減去了一個執(zhí)行權(quán)限。所以結(jié)果加1。

5 umask的修改

umask 的修改分2中, 臨時修改的和永久修改的

臨時修改:

[root@bogon test]# umask 023
[root@bogon test]# umask
0023
[root@bogon test]# 

永久修改:

可以編輯以下文件 添加umask=022。

交互式登陸的配置生效:

/etc/profile < /etc/profile.d/*.sh < ~/.bash_profile < ~/.bashrc

非交互登陸的配置生效:

~/.bashrc < /etc/bashrc  < /etc/profile.d/*.sh

6 常用umask

[root@bogon test]# umask 002
[root@bogon test]# umask
0002
[root@bogon test]# umask 022
[root@bogon test]# umask
0022

本篇文章到此結(jié)束,如果您有相關(guān)技術(shù)方面疑問可以聯(lián)系我們技術(shù)人員遠程解決,感謝大家支持本站!

創(chuàng)新互聯(lián)(cdcxhl.com)提供穩(wěn)定的云服務(wù)器,香港云服務(wù)器,BGP云服務(wù)器,雙線云服務(wù)器,高防云服務(wù)器,成都云服務(wù)器,服務(wù)器托管。精選鉅惠,歡迎咨詢:028-86922220。


當前題目:詳解linux下umask的使用
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/dhsghhc.html