咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
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-
在/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)。
使用UID大于199的普通用户创建文件的默认权限是(666-002)=664,使用普通用户创建目录的默认权限是775(777-002)。
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