Linux权限控制之umask

2023-11-21 15:03:53 1724

Linux权限控制之umask

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

每次新建一个文件时,文件的默认权限是由umask的值决定的。当我们输入umask命令时,它会输出一个4为的八进制数值,如0002。表示当前用户新建文件或目录时的umask

如果umask值的某位被设置,在新建文件或目录时将禁用对应的权限。

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

dr-x-wx-w-

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

-rw-rw-rw-

Linuxumask默认值

/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

比如使用UID0root用户创建文件的默认权限是(666-022)=644,使用root用户创建目录的默认权限是755777-022)。

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

umask默认权限的修改方法

临时修改

umask 权限值可以通过如下命令直接修改

[14:42:36 root@XksRain ~]#umask
0022
[14:42:38 root@XksRain ~]#umask 033
[15:04:58 root@XksRain ~]#umask
0033

永久修改

可在对应用户下的.bashrc文件中添加:

umask
# 范例:
# 设置natasha 用户创建的目录权限默认为733,文件权限为 622,永久生效
echo "umask 044" >> /home/natasha/.bashrc

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: