三分钟学习Linux权限控制命令—umask

516 阅读2分钟

umask

Linux 中umask的工作方式与chmod命令类似,它也用于定义文件或目录的权限。它们之间的区别在于chmod用于改变已有文件或目录的权限,而umask用于定义新建文件或目录的默认权限。在Red Hat LInux中,是无法配置新建文件自动具有可执行权限的,因为具有可执行权限的文件越少,黑客破解系统的可利用的文件就越少,以此提高安全性。

每次新建一个文件时,文件的默认权限是由umask的值决定的。当我们输入umask命令时,它会输出一个4为的八进制数值,如0002。如果umask值的某位被设置,在新建文件或目录时将禁用对应的权限。

例如umask的值为0245意味着新建的目录具有(777-002)=0532八进制权限,等效于下面字符串:

dr-x-wx-w-

如果umask的值为000,该用户新建的文件具有(666-000)=666八进制权限,等效于下面字符串:

-rw-rw-rw-

Linux中umask默认值

在/etc/profile中有这样一段代码:

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
  umask 002
else
  umask 022
fi

其含义是UID大于199的普通用户掩盖权限为002,其他用户的掩盖权限是022。

比如使用UID为0的root用户创建文件的默认权限是(666-022)=644,使用root用户创建目录的默认权限是755(777-022)。

img.png 使用UID大于199的普通用户创建文件的默认权限是(666-002)=664,使用普通用户创建目录的默认权限是775(777-002)。

img2.png

权限数值对照表

数值权限含义
0---无权限
1--x只具有执行权限
2-w-只具有写权限
3-wx具有写和执行权限
4r--只具有读权限
5r-x具有读和执行权限
6rw-具有读和写权限
7rwx具有读、写和执行权限

欢迎大家关注我,更多Linux干货等着你!

公众号.jpg