Linux 文件umask默認權限_012

 

 

1、       umask介紹安全

 

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

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

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

 

 

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

[oldgirl@oldboy ~]$ whoamitest

oldgirlawk

[root@oldboy ~]# umasksed

0022file

[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

 

 

 

2、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-)

相關文章
相關標籤/搜索