『無慾則無求』Linux常用命令 — 24、umask默認權限

1、文件和目錄的默認權限

Linux系統的基本權限有6種。

讀寫執行爲基本權限
umask 爲默認權限
後邊還有4種權限,會在之後的權限管理部分詳細講解。

我們先創建一個文件abc,然後查看abc文件的長信息。

[root@192 ~]# touch abc
[root@192 ~]# ls -l abc 
-rw-r--r--. 1 root root 0 12月 30 05:32 abc

可以看到上邊新創建的文件,直接就有一定的權限,我們把這種權限叫默認權限。

  • Linux系統是如何得到文件和目錄的默認權限?
    是通過umask值來獲得文件和目錄的默認權限。

2、umask 默認權限

(這個值基本上不用我們自己修改,但是我們一定要知道和能看懂。)

(1)查看系統的umask權限

[root@localhost ~ ] # umask
0022

注意:我們之前學的權限只有三位,我們現在忽略第一位,第一位的作用在以後文章中會詳細說明。

(2)用八進制數值顯示umask權限

[root@localhost ~ ] # umask -S 
u=rwx,g=rx,O=rx
#用字母表示文件和目錄的初始權限

(3)umask權限的計算方法

我們需要先了解一下新建文件和目錄的默認最大權限。

  • 對文件來講,新建文件的默認最大權限是666,沒有執行(x)權限。這是因爲執行權限對文件來講比較危險,不能在新建文件的時候默認賦予,而必須通過用戶手工賦予。
  • 對目錄來講,新建目錄的默認最大權限是777。這是因爲對目錄而言,執行(x)權限僅僅代表進入目錄,所以即使建立新文件時直接默認賦予,也沒有什麼危險。

按照官方的標準算法,umask默認權限需要使用二進制進行邏輯與邏輯非聯合運算纔可以得到正確的新建文件和目錄的默認權限。這種方法對計算機來說很好計算,但是對人來說既不好計算,也不好理解,不推薦。

我們在這裏還是按照權限字母來講解umask權限的計算方法。(推薦算法)

我們就按照默認的umask值是022來分別計算一下新建文件和目錄的默認權限吧。

  • 文件的默認權限最大隻能是666,而umask的值是022
    “-rw-rw-rw-”減去“-----w–w-”等於“-rw-r–r--”
  • 目錄的默認權限最大可以是777,而umask的值是022
    “drwxrwxrwx”減去“d----w–w-”等於“drwx-r-xr-x”

(4)注意:umask 默認權限的計算絕不是數字直接相減。

  • 例如umask是033呢?
    修改umask值命令爲[root@192 ~]# umask 033(臨時修改,如果需要永久修改,就要修改配置文件)
    文件的默認權限最大隻能是666,而umask的值是033
    “-rw-rw-rw-”減去“—wx-wx”等於“-rw-r-r-”
    r--=r
    w-w=-
    --x=-x(所有負的都爲-
  • 例如umask是033用數字相減呢?
    666-033=633
    翻譯成權限爲-rw--rx-rx,這就不對了。

提示:
修改umask值的配置文件在/etc/profile文件,/etc/profile文件是環境變量配置文件。
什麼是環境變量配置文件?
修改該文件內容,會影響當前系統的操作環境。
環境變量配置文件並不是只有這一個,默認是有4個環境變量配置文件,另加一個目錄(目錄中有很多配置文件,以後用到哪個說哪個。)。

說明:
我們進入到上邊所提到的/etc/profile環境變量配置文件,可以找到關於umask值的代碼塊

[user1@192 ~]$ cat /etc/profile

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi

#在Linux系統中root用戶的UID=0,而普通用戶的UID>500,500以內是留給系統用戶的。
#[ "`id -gn`" = "`id -un`" ]判斷的是用戶的UID和GID是相等的,暫時可以忽略不看。

root用戶的umask值
[root@192 ~]# umask 
0022

普通用戶的umask值
[user1@192 ~]$ umask
0002

總結:

umask值重要度很高,默認自動賦值並生效。但是不需要用戶介入(修改),能看懂,知道他就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章