av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Linuxumask詳解:令新建文件和目錄擁有默認權限

linux 是注重安全性的操作系統(tǒng),而安全的基礎在于對權限的設定,不僅所有已存在的文件和目錄要設定必要的訪問權限,創(chuàng)建新的文件和目錄時,也要設定必要的初始權限。

我們提供的服務有:網站建設、成都網站建設、微信公眾號開發(fā)、網站優(yōu)化、網站認證、新沂ssl等。為上千多家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的新沂網站制作公司

Windows 系統(tǒng)中,新建的文件和目錄時通過繼承上級目錄的權限獲得的初始權限,而 Linux 不同,它是通過使用 umask 默認權限來給所有新建的文件和目錄賦予初始權限的。

那么,我們如何得知 umask 默認權限的值呢?直接通過 umask 命令即可:

[root@localhost ~]# umask
0022
#root用戶默認是0022,普通用戶默認是 0002

讀者可能會問,不應該只有 3 個數字(分別對應 3 種用戶身份)嗎,為什么有 4 個? umask 默認權限確實由 4 個八進制數組成,但第 1 個數代表的是文件所具有的特殊權限(SetUID、SetGID、Sticky BIT),此部分內容放到后續(xù)章節(jié)中講解,現(xiàn)在先不討論。也就是說,后 3 位數字 "022" 才是本節(jié)真正要用到的 umask 權限值,將其轉變?yōu)樽帜感问綖?----w--w-。

注意,雖然 umask 默認權限是用來設定文件或目錄的初始權限,但并不是直接將 umask 默認權限作為文件或目錄的初始權限,還要對其進行 "再加工"。

文件和目錄的真正初始權限,可通過以下的計算得到:

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

如果按照官方的標準算法,需要將 umask 默認權限使用二進制并經過邏輯與和邏輯非運算后,才能得到最終文件或目錄的初始權限,計算過程比較復雜,且容易出錯,因此本節(jié)給大家介紹了更簡單的計算方式。

顯然,如果想最終得到文件或目錄的初始權限值,我們還需要了解文件和目錄的最大默認權限值。在 Linux 系統(tǒng)中,文件和目錄的最大默認權限是不一樣的:

  • 對文件來講,其可擁有的最大默認權限是 666,即 rw-rw-rw-。也就是說,使用文件的任何用戶都沒有執(zhí)行(x)權限。原因很簡單,執(zhí)行權限是文件的最高權限,賦予時絕對要慎重,因此絕不能在新建文件的時候就默認賦予,只能通過用戶手工賦予。
  • 對目錄來講,其可擁有的最大默認權限是 777,即 rwxrwxrwx。

接下來,我們利用字母權限的方式計算文件或目錄的初始權限。以 umask 值為 022 為例,分別計算新建文件和目錄的初始權限:

  • 文件的最大默認權限是 666,換算成字母就是 "-rw-rw-rw-",umask 的值是 022,換算成字母為 "-----w--w-"。把兩個字母權限相減,得到 (-rw-rw-rw-) - (-----w--w-) = (-rw-r--r--),這就是新建文件的初始權限。我們測試一下:

    [root@localhost ~]# umask
    0022
    #默認umask的值是0022
    [root@localhost ~]# touch file  <--新建file空文件
    [root@localhost ~]# ll -d file
    -rw-r--r--. 1 root root 0 Apr 18 02:36 file

  • 目錄的默認權限最大可以是 777,換算成字母就是 "drwxrwxrwx",umask 的值是 022,也就是 "-----w--w-"。把兩個字母權限相減,得到的就是新建目錄的默認權限,即 (drwxrwxrwx) - (-----w--w-) = (drwxr-xr-x)。我們再來測試一下:

    [root@localhost ~]# umask
    0022
    [root@localhost ~]# mkdir catalog  <--新建catalog目錄
    [root@localhost ~]# ll -d catalog
    drwxr-xr-x. 2 root root 4096 Apr 18 02:36 catalog

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

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

umask默認權限的修改方法

umask 權限值可以通過如下命令直接修改:

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

不過,這種方式修改的 umask 只是臨時有效,一旦重啟或重新登陸系統(tǒng),就會失效。如果想讓修改永久生效,則需要修改對應的環(huán)境變量配置文件 /etc/profile。例如:

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

這是一段 Shell 腳本程序,不懂也沒關系,大家只需要知道,普通用戶的 umask 由 if 語句的第一段定義,而超級用戶 root 的 umask 值由 else 語句定義即可。 修改此文件,則 umask 值就會永久生效。


網站欄目:Linuxumask詳解:令新建文件和目錄擁有默認權限
當前路徑:http://uogjgqi.cn/article/ccoieei.html
掃二維碼與項目經理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網交流