Linux 文件umask默認權限_012


 

 

一、       umask介紹

 

  Linux 系統用戶創建一個新的目錄或文件時,系統會默認會分配相應的權限。目錄或文件的權限是如何產生的呢?

  1、這就是umask的功能,umask設置了用戶創建文件或目錄的默認權限。Linux 系統umask設置的默認權限屬於安全權限的臨界點,如果高於這個臨界點,文件的權限就太過危險,如果低於這個臨界點,文件的權限太過苛刻,操作麻煩。

  2、Linux系統root系統管理員用戶默認umask值為0022,對應創建目錄默認權限為755,對應創建文件默認權限為644.Linux系統其它用戶默認uamsk值為0002, 對應創建目錄默認權限為775, 對應創建文件默認權限為664.

 

 

root系統管理員用戶創建文件和目錄:

[oldgirl@oldboy ~]$ whoami

oldgirl

[root@oldboy ~]# umask

0022

[root@oldboy ~]# mkdir test

[root@oldboy ~]# ls -ld /test/

drwxr-xr-x 2 root root 4096 Dec  1 11:47 /test/

[root@oldboy ~]# touch /test/file.txt

[root@oldboy ~]# ls -l /test/file.txt

-rw-r--r-- 2 root root 0 Dec  5 09:47 /test/file.txt

 

test普通用戶創建文件和目錄:

[test@oldboy ~]$ whoami

test

[test@oldboy ~]$ umask

0002

[test@oldboy ~]$ mkdir hello

[test@oldboy ~]$ ls -ld hello/

drwxrwxr-x 2 test test 4096 Dec  5 10:03 hello/

[test@oldboy ~]$ touch testfile.txt

[test@oldboy ~]$ ls -l testfile.txt

-rw-rw-r-- 1 test test 0 Dec  5 10:03 testfile.txt

 

Linux 系統umask默認值存在於bashrc系統文件:

[test@oldboy ~]$ sed -n '65,69p' /etc/bashrc

    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

       umask 002

    else

       umask 022

fi

 

Linux 臨時設置umask默認值:(umask默認是四位,第一位是文件特殊權限位,可以暫時忽略):

[test@oldboy ~]$ umask 033

[test@oldboy ~]$ umask

0033

 

 

 

二、umask值對應文件權限計算方法(以系統管理員root用戶操作)

 

文件權限計算方法

 

文件的起始權限值

umask值

操作

計算后文件權限

舉例

666

022  (每位如果都是偶數)

相減

644

范例1

666

033  (每位如果有奇數或偶數)

相減(奇數位相減后在其原奇數位加1)

644

范例2

666

325(每位如果有奇數或偶數)

相減(奇數位相減后在其原奇數位加1)

442

范例3

 

 

目錄權限計算方法

 

文件的起始權限值

umask值

操作

計算后文件權限

舉例

777

022

相減

755

范例1

777

033

相減

744

范例2

777

325

相減

452

范例3

 

 

 

范例1:

[root@oldboy ~]# umask

0022

[root@oldboy ~]# mkdir /oldboy

[root@oldboy ~]# touch /oldboy/test.sh

[root@oldboy ~]# ls -ld /oldboy/

drwxr-xr-x 2 root root 4096 Dec  5 11:16 /oldboy/

[root@oldboy ~]# ls -l /oldboy/test.sh

-rw-r--r-- 1 root root 0 Dec  5 11:16 /oldboy/test.sh

[root@oldboy ~]# stat /oldboy/ | awk -F '[: ]+' 'NR==4 {print $2}'

(0755/drwxr-xr-x)

[root@oldboy ~]# stat /oldboy/test.sh | awk -F '[: ]+' 'NR==4 {print $2}'

(0644/-rw-r--r--)

 

 

范例2:

[root@oldboy ~]# umask 033

[root@oldboy ~]# umask

0033

[root@oldboy ~]# mkdir /oldboy

[root@oldboy ~]# touch /oldboy/test.sh

[root@oldboy ~]# ls -ld /oldboy/

drwxr--r-- 2 root root 4096 Dec  5 11:26 /oldboy/

[root@oldboy ~]# ls -l /oldboy/test.sh

-rw-r--r-- 1 root root 0 Dec  5 11:26 /oldboy/test.sh

[root@oldboy ~]# stat /oldboy/ | awk -F '[: ]+' 'NR==4 {print $2}'

(0744/drwxr--r--)

[root@oldboy ~]# stat /oldboy/test.sh | awk -F '[: ]+' 'NR==4 {print $2}'

(0644/-rw-r--r--)

 

 

范例3:

[root@oldboy ~]# umask 325

[root@oldboy ~]# umask

0325

[root@oldboy ~]# mkdir /oldboy

[root@oldboy ~]# touch /oldboy/test.sh

[root@oldboy ~]# ls -ld /oldboy/

dr--r-x-w- 2 root root 4096 Dec  5 11:34 /oldboy/

[root@oldboy ~]# ls -l /oldboy/test.sh

-r--r---w- 1 root root 0 Dec  5 11:34 /oldboy/test.sh

[root@oldboy ~]# stat /oldboy/ | awk -F '[: ]+' 'NR==4 {print $2}'

(0452/dr--r-x-w-)

[root@oldboy ~]# stat /oldboy/test.sh | awk -F '[: ]+' 'NR==4 {print $2}'

(0442/-r--r---w-)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM