umask

umask
[功能]
通过设置一些位来禁止一些权限。有一些通用的值,"002"阻止其他人写你的文件,"022"阻止组成员和其它人写你的文件,"027"阻止组成员写你的文件以及其他人读、写、执行你的文件。

[举例]
*显示当前的umask值:
$umask
输入之后,例如输出如下:
0022
这里,是系统的默认mask,因为是8进制,所以是0022不是022.

*设置umask值为0022:
$umask 0022
这里,假设从前的umask不是0022,这时候将会变成0022,如果创建了一个文件看看权限,会发现如下:
-rw-r--r-- 1 quietheart quietheart 0 2010-05-05 08:55 tttt
如果设置成0000,那么如下:
-rw-rw-rw- 1 quietheart quietheart 0 2010-05-05 09:01 tttt
(修改成0000之后,会使得子进程的umask也为0000)
如果设置成0777,那么如下:
---------- 1 quietheart quietheart 0 2010-05-05 09:03 tttt
另外,实践发现,第一位始终是0不能被设置,所以实际上之后后三位可以设置。
综上可知,后三位表示的意思例如:
002,表示创建的时候屏蔽掉other成员写;022表示创建的时候屏蔽group和others成员写;000表示创建的时候不屏蔽任何人open调用的读写执行设置;777与000相反。
也就是说设使用open调用创建文件的时候指定的权限为s_mode,umask的值为mask,那么最终创建文件的权限就是:
s_mode & ~mask
当然,用chmod还是可以改的。

*用符号表示的方式打印umask值:
$umask -S
输入之后,输出如下:
u=rwx,g=rx,o=rx
这里,实际的非符号值是0022,更进一步说明了,umask的值是被屏蔽的位。

[其他]
更多内容,有待补充。
$ umask first print the current file mode creation mask
002
$ umask -S print the symbolic form
u=rwx,g=rwx,o=rx
$ umask 027 change the file mode creation mask
$ umask -S print the symbolic form
u=rwx,g=rx,o=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值