在Linux中設定UMASK值

2021-08-14 10:11:50 字數 2566 閱讀 2785

umask

值用於設定使用者在建立檔案時的預設許可權,當我們在系統中建立目錄或檔案時,目錄或檔案所具有的預設許可權就是由

umask

值決定的。 對於

root

使用者,系統預設的

umask

值是0022

;對於普通使用者,系統預設的

umask

值是0002

。執行umask

命令可以檢視當前使用者的

umask值。

[root@localhost ~]# umask

0022

umask

值一共有

4組數字,其中第

1組數字用於定義特殊許可權,我們一般不予考慮,與一般許可權有關的是後

3組數字。

預設情況下,對於目錄,使用者所能擁有的最大許可權是

777;對於檔案,使用者所能擁有的最大許可權是目錄的最大許可權去掉執行許可權,即

666。因為x

執行許可權對於目錄是必須的,沒有執行許可權就無法進入目錄,而對於檔案則不必預設賦予

x執行許可權。 對於

root

使用者,他的

umask

值是022

。當root

使用者建立目錄時,預設的許可權就是用最大許可權

777去掉相應位置的

umask

值許可權,即對於所有者不必去掉任何許可權,對於所屬組要去掉

w許可權,對於其他使用者也要去掉

w許可權,所以目錄的預設許可權就是

755;當

root

使用者建立檔案時,預設的許可權則是用最大許可權

666去掉相應位置的

umask

值,即檔案的預設許可權是

644。

可以通過下面的測試操作來了解

umask值。

[root@localhost ~]# mkdirdirectory1 #

建立測試目錄

[root@localhost ~]# ll -ddirectory1 #

目錄的預設許可權是

755

drwxr-xr-x. 2 root root 4096 12

月2 13:08 directory1

[root@localhost ~]# touchfile1 #

建立測試檔案

[root@localhost ~]# ll file1 #

檔案的預設許可權是

644

-rw-r--r--. 1 root root 0 12

月2 13:09 file1 通過

umask

命令可以修改

umask

值,比如將

umask

值設為0077。

[root@localhost ~]# umask 0077

[root@localhost ~]# umask

0077

此時建立的目錄預設許可權為

700,檔案預設許可權是

600:

[root@localhost ~]# mkdirdirectory2

[root@localhost ~]# ll -ddirectory2

drwx------. 2 root root 4096 12

月2 13:14 directory2

[root@localhost ~]# touch file2

[root@localhost ~]# ll file2

-rw-------. 1 root root 0 12

月2 13:14 file2

考慮一下,如果將

umask

值設為0003

,那麼此時建立的目錄或檔案的預設許可權是多少?

正確的結果應該是:目錄的預設許可權是

774,檔案的預設許可權是

664。在計算預設許可權時,不應用最大許可權直接減去

umask

值,而是將

umask

值所對應的相應位置的許可權去掉,這樣才能得到正確的結果。

umask

命令只能臨時修改

umask

值,系統重啟之後

umask

將還原成預設值。如果要永久修改

umask

值,需要修改

/etc/profile

檔案或是修改

/etc/bashrc

檔案,例如要將預設

umask

值設定為

027,那麼可以在檔案中增加一行

「umask 027」。

/etc/profile

和/etc/bashrc

都可以用於設定使用者登入系統時自動執行某些操作,他們的區別是

/etc/profile

只在使用者第一次登入時被執行,而

/etc/bashrc

則在使用者每次登入載入

bash shell

時都會被執行。

因而,如果是修改

/etc/profile

檔案,將只對新建立的使用者生效;而如果是修改

/etc/bashrc

檔案,則對所有使用者都生效。

linux檔案設定許可權命令umask

我們建立檔案的預設許可權是怎麼來的?如何改變這個預設許可權呢?umask是什麼?當我們登入系統之後建立乙個檔案總是有乙個預設許可權的,那麼這個許可權是怎麼來的呢?這就是umask幹的事情。umask設定了使用者建立檔案的預設許可權,它與chmod的效果剛好相反,umask設定的是許可權 補碼 而ch...

linux設定許可權掩碼命令 umask

umask命令用來設定限制新建檔案許可權的掩碼。當新檔案被建立時,其最初的許可權由檔案建立掩碼決定。使用者每次註冊進入系統時,umask命令都被執行,並自動設定掩碼mode來限制新檔案的許可權。使用者可以通過再次執行umask命令來改變預設值,新的許可權將會把舊的覆蓋掉。umask 選項 引數 s ...

linux中umask的使用

在linux建立檔案 資料夾的時候會給它們賦予預設的許可權,這個預設許可權的賦予就是和umask相關的。總結如下 1 x 執行 2 w 寫入 4 r 讀取 檔案建立的時候的許可權為 666與umask的每一位對應相減 如 umask 為 0022 那麼檔案的預設許可權為644。有特殊情況,就是uma...