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