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