Linux系統的許可權有6種。
- 讀寫執行為基本許可權。
umask
為預設許可權。- 後邊還有4種許可權,會在之後的許可權管理部分詳細講解。
1、檔案和目錄的預設許可權
我們先建立一個檔案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來分別計算一下新建檔案和目錄的預設許可權吧。提示: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
值重要度很高,預設自動賦值並生效。但是不需要使用者介入(修改),能看懂,知道他就可以了。