linux下的umask指令,Linux命令学习手册-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=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值