umask简述
umask
命令确定了创建文件的默认权限模式。这一命令实际上和chmod命令正好相反,umask指定的是“该默认值需要减掉的权限”。一般来说,umask命令是在/etc/profile文件中设置的,每个用户在登陆时候都会引用这个文件,所以希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久性的设置自己的umask值,那么就把它放在自己 /home 目录的.profile或.bashrc文件中,这个根据发行版而有所不同。
系统管理员应该要为用户设置一个合理的umask值,以确保用户创建的文件具有所希望的默认权限,防止其他非同组用户对用户的文件具有写的权限。
计算umask的值
对于文件来说,这一数字的最大值是6。系统不允许用户在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录的数值是7,目录运行设置执行权限。
该命令的格式:umask 数值
# 数值设置的范围为000-777,八进制数字
与权限位相对应的umask值(在计算umask的值时,可以针对各类用户分别在这张表中查找所需目录创建默认权限相应的umask值)
下表是与权限位相对应的umask值 :
umask | 文件 | 目录 |
---|---|---|
0 | 6 | 7 |
1 | 6 | 6 |
2 | 4 | 5 |
3 | 4 | 4 |
4 | 2 | 3 |
5 | 2 | 2 |
6 | 0 | 1 |
7 | 0 | 0 |
说明:
比如umask为002,则对应的是文件权限为664和目录为775。
我们试着使用一个例子来讲解清楚。
一个umask的值为022.对于目录来说,我们只需要用777减去022即可,位数需要相照应,可以得到755,755就是用户创建目录的默认权限;而对于文件来说,我们用666减去022,可以得到644,644就是文件创建的默认权限了。
umask值意义
umask是三组数字的,但是我们在Ubuntu上输入后,会发现出现了四组数字。
第一组是特殊权限用的,我们可以不用管它,所以看后面3组即可。
在linux下我们查看的方式有两种,一种可以直接输入umask
,就可以看到数字形态的权限设置分数,一种则是加-S
(Symbolic)参数,就能以符号类型的方式来显示出权限了。
其中解释一下数值表示的意思:0 0 0 2
第一个数值:为特殊权限,比如”SUID,SGID,SBIT”
第二个数值:为属主权限
第三个数值:为组权限
第四个数值:为其他用户权限
通常我们使不需要理会第一个数值的,我们只需要关注一下后三位数值就可以了。
更改umask值
如果想改变umask的值,使用以下命令:umask 数值
示例:1
umask 002
但是这是一种临时的更改,在系统重启后一切都会回归初始状态。
我们要永久性的更改,就需要到/etc/profile文件中。
但是如果你想设置umask的值,那么你一定要清除你赋予权限的文件目录需要什么样的权限。如果你不是很清楚的话,那么你一定不要设置这个值。如果你错误的操作,也许会使用户没有任何的读写基本权限或是使用户拥有过大的执行权限,使整个操作系统处于危险的边缘。
本文作者:冰羽
本文地址: https://bingyublog.com/2018/10/04/umack/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!