中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux下umask命令用途原理和計算方式是什么

發布時間:2021-11-29 17:27:19 來源:億速云 閱讀:147 作者:iii 欄目:開發技術

這篇文章主要介紹“linux下umask命令用途原理和計算方式是什么”,在日常操作中,相信很多人在linux下umask命令用途原理和計算方式是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux下umask命令用途原理和計算方式是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

    umask umask用途

    umask令新建文件和目錄擁有默認權限。

    可以看到root創建的目錄是755,文件是644

    [root@zaishu zaishu]# touch test.txt
    [root@zaishu zaishu]# mkdir test
    
    [root@zaishu zaishu]# ls -l
    total 0
    drwxr-xr-x 2 root root 6 Nov 25 16:29 test  
    -rw-r--r-- 1 root root 0 Nov 25 16:28 test.txt

    普通用戶

    可以看到普通用戶創建的目錄是775,文件是664

    [mysql@zaishu ~]$ touch test.txt
    [mysql@zaishu ~]$ mkdir test
    [mysql@zaishu ~]$ ls -l
    total 0
    drwxrwxr-x 2 mysql mysql 6 Nov 25 16:30 test
    -rw-rw-r-- 1 mysql mysql 0 Nov 25 16:30 test.txt

    這些默認的權限值是通過umask設置運算得到。

    原理

    Linux 它是通過使用 umask 默認權限來給所有新建的文件和目錄賦予初始權限的。那么,我們如何得知 umask 默認權限的值呢?直接通過 umask 命令即可:

    1. umask值

    [root@zaishu ~]# umask
    0022
    
    [mysql@zaishu ~]$ umask
    0002

    #root用戶默認是0022,普通用戶默認是 0002

    umask 默認權限確實由 4 個八進制數組成,第 1 個數代表的是文件所具有的特殊權限(SetUID、SetGID、Sticky BIT)先忽略。后 3 位 “022” 對應為 ----w–w-。

    2. 文件目錄權限最大值

    Linux 系統中,文件和目錄的最大默認權限是不一樣:

    文件來講,可擁有的最大默認權限是 666,即 rw-rw-rw-。x是文件最大權限,新建文件的時候不會給與,只能通過用戶手工賦予。

    目錄來講,擁有的最大默認權限是 777,即 rwxrwxrwx。

    3. 常規計算

    文件和目錄的初始權限,通過計算得到:

    文件(或目錄)的初始權限 = 文件(或目錄)的最大默認權限 - umask權限

    [mysql@zaishu ~]$ umask
    0002
    [mysql@zaishu ~]$ mkdir test
    [mysql@zaishu ~]$ ll -d test
    drwxrwxr-x 2 mysql mysql 6 Nov 26 10:50 test  // 目錄的默認權限最大可以是 777,777-002 =775
    
    [mysql@zaishu ~]$ touch h.txt
    [mysql@zaishu ~]$ ll h.txt 
    -rw-rw-r-- 1 mysql mysql 0 Nov 26 10:52 h.txt //文件最大權限 666, 666-002(普通用戶) 666-002 =664
    [root@zaishu ~]# touch h3
    [root@zaishu ~]# ls -l h3 
    -rw-r--r-- 1 root root 0 Nov 26 10:53 h3 //文件最大權限 666, 666-002(root) 666-022 =644

    4. 嚴謹計算

    在計算文件或目錄的初始權限時,直接使用最大默認權限和 umask 權限的數字形式做減法,是不嚴謹的。例如,若 umask 默認權限的值為 033,按照數字形式計算文件的初始權限,666-033=633,但我們按照字母的形式計算會得到 (rw-rw-rw-) - (----wx-wx) = (rw-r–r--),換算成數字形式是 644。

    這里的減法,其實是“遮蓋”的意思,也就是說,最大默認權限中和 umask 權限公共的部分,通過減法運算會被遮蓋掉,最終剩下的“最大默認權限”,才是最終賦予文件或目錄的初始權限。

    umask值修改

    1. 臨時生效(當前會話)

    umask 權限值可直接修改:

    [root@localhost ~]# umask 002
    [root@localhost ~]# umask
    0002
    [root@localhost ~]# umask 033
    [root@localhost ~]# umask
    0033

    這種方式修改的 umask 只是臨時有效,一旦重啟或重新登陸系統,就會失效。

    2. 永久生效

    讓修改永久生效,則需要修改對應的環境變量配置文件 /etc/profile。

    [root@zaishu~]# vim /etc/profile
    ...省略部分內容...
    if [ $UID -gt 199]&&[ "'id -gn'" = "'id -un'" ]; then
        umask 002
        #如果UID大于199(普通用戶),則使用此umask值
    else
        umask 022
        #如果UID小于199(超級用戶),則使用此umask值
    fi

    到此,關于“linux下umask命令用途原理和計算方式是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    舒兰市| 林周县| 渝北区| 衡阳市| 望都县| 巴林右旗| 台安县| 依安县| 三门县| 沈阳市| 崇文区| 连南| 云梦县| 海宁市| 太仆寺旗| 囊谦县| 冕宁县| 淮安市| 高雄市| 平果县| 昌江| 阿巴嘎旗| 大丰市| 无为县| 昌黎县| 抚顺县| 措美县| 贵州省| 潮安县| 鄂尔多斯市| 黑山县| 通海县| 峡江县| 师宗县| 正镶白旗| 拉孜县| 即墨市| 斗六市| 宜黄县| 墨竹工卡县| 武陟县|