Linux默认权限掩码

Linux默认权限掩码,第1张

Linux教程

Linux教程: http://www.fdlly.com/m/linux

@[toc]

当我们创建文件或目录时,系统会自动根据权限掩码来生成预设权限;默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认权限是755(7-0,7-2,7-2),

umask可用来设定权限掩码;权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件或目录时的预设权限

umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到 7。

计算umask值的方法,我们只需要记住umask是从权限中拿走相应的位即可

如果umask为023,则对于文件所有者,不拿去任何权限,而新建的文件默认没有执行权限,故对文件所有者的权限位rw-(6);对组所有者,拿去写权限,原本没有执行权限,故为r--(4);对其他用户,拿去写和执行权限,原本没有执行权限,故为r--(4);

如果umask为023,因为没有新建目录没有执行权限的限制。则对于目录所有者,不拿去任何权限,故对目录所有者的权限为rwx(7);对组所有者,拿去写权限,故为r-x(5);对其他用户,拿去写和执行权限,故为r--(4);

功能说明:指定在建立文件或目录时预设的权限掩码

语法

选项及参数

使用umask命令可以设置创建新文件时的默认权限。

语法:umask [选项] [权限掩码]

参数说明:-S 以字符的方式来表示权限掩码

示例:设置文件的权限掩码,使新建文件自动生成默认权限为rw-rw----

说明:rw-rw----对应的数字就是660 ,在Linux系统中,读权限(read,r)的值是4,写权限(write,w)的值是2,执行权限(execute,x)的值是1,没有授权的值是0 ,所以rw-rw----的数字权限值就是660。因为是建立新的文件,Linux默认不允许用户建立的文件具备可执行权限,所以文件的最大值权限值是666,umask值实际上是计算的最大权限值的补码,所以此时umask值是666-660=006

所以,要依次执行如下命令:

linux@server:~$ umask 006

linux@server:~$ touch abc

linux@server:~$ ll abc

-rw-rw---- 1 linux linux 0 2010-12-11 21:44 abc

扩展:两个比较特殊的权限掩码

umask 777 #创建文件会没有任何权限,他和chmod是相反的。

umask 000 #具有所有权限。但文件没有x权限。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6252834.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存