Linux系统通过umask计算文件和目录权限的方法

方法1:直接用加减法计算(简单直接,推荐使用)
重点提示:不能单纯直接相减得到结果,要看umask对应位的奇偶性。
例如:
1. umask=022
目录权限:777-022=755
文件权限:666-022=644
2. umask=032,对应位是奇数的,计算文件默认权限时需要相减后再加1
目录权限:777-032=745
文件权限:6-0=6,6-3+1=4,6-2=4,最终结果是644
[xruan@CentOS6lsrv01 ~]$ umask 032
[xruan@CentOS6lsrv01 ~]$ umask
0032
[xruan@CentOS6lsrv01 ~]$ mkdir dir1
[xruan@CentOS6lsrv01 ~]$ touch test1
[xruan@CentOS6lsrv01 ~]$ ll
total 4
drwxr--r-x 2 xruan xruan 4096 Oct 18 05:06 dir1
-rw-r--r-- 1 xruan xruan    0 Oct 18 05:06 test1
小结:这种计算方法只需要在计算文件默认权限时需要考虑umask对应位的奇偶性,如果umask对应位是偶数,则用6直接相减可以得出最后结果,如果umask对应位是奇数,则用6相减后再加1可以得出最后结果;对于目录,直接用777-umask得到结果。

方法2:通过字母符号进行计算
假设umask值为551[r-xr-x--x],
目录权限:[rwxrwxrwx]-[r-xr-x--x]=[-w--w-rw-],即226
文件权限:[rw-rw-rw-]-[r-xr-x--x]=[-w--w-rw-],文件的x位上没有x,不用处理,直接取过来即可,即226

方法3:转换成二进制计算,假设umask为032
说明:这种方法最严谨和精确,但比较麻烦,实际工作中不推荐使用

你可以参考一下,有发现错误的请告知我^^
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值