Linux / Unix系统 umask 命令

当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。


umask命令设置文件权限只是针对该session的,如果希望永久 性地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile文件中(用户登录后就执行umask)。


umask值计算:

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

该命令的一般形式为:
umask nnn
其中nnn为umask置000-777


计算的时候首先要知道,在Linux上权限类型分为读、写、执行三类,对应的数字权限如下:
r        4
w        2
x        1
我们在使用chmod分配权限的时候,可以对:
所有者(u)
所属组(g)(所有者及所有者所在组的全部用户)
其他用户(o)(其他组的所有用户(包括文件所有者))
例如:chmod 755 a.log


对于umask命令,是“补码”类型,所以设置后的最终权限可以通过7-n来计算。
例如,umask值002 所对应的文件和目录创建缺省权限分别为6 6 4和7 7 5。

你可能感兴趣的:(linux)