linux 用户的目录、文件权限,权限掩码umask

linux 用户的目录、文件权限,权限掩码umask

1.目录权限

r: 可以查询该目录下的文件名。

w:可以在该目录下删除文件、新建文件、更改文件名。

x:进入该目录(使得该目录成为工作目录)

2.文件权限

r:(可读),显示该文件的内容(如:cat命令)

w:(可写),可以编辑文件,修改文件的内容(如:vim命令)

x:(可执行),该文件是可执行文件

举例:

以下例子都需要用到目录和文件的什么权限?

例1:用户能进入某目录(cd命令)
答:目录:x权限

例2:查看某目录下的文件(ls命令)
答:目录:r权限

例3:用户在目录内读取文件(cat less more命令)
答:目录:x权限
	文件:r权限
		
例4:用户能修改目录内的文件()
答:目录:x权限
    文件:r,w权限
	   
例5:用户在目录内创建文件
答:目录:x,w权限

3.目录和文件的最大默认权限

目录的最大默认权限777:rwxrwxrwx

文件的最大默认权限666:rw-rw-rw-

关于权限的字母表示和数字表示下面会讲

4.权限的字母表示和数字表示

777为什么对应rwxrwxrwx?

777每一位数字转化为二进制表示就是111 111 111,
9个字母(rwxrwxrwx)与9个数字(111111111)位置一一对应,
如果字母对应的数字为1,那么就说明该字母所表示的权限生效,
如果字母对应的数字为0,那么就说明该字母所表示的权限无效,相应字母位置用-替代。

根据以上规则所以我们可以推出666对应的字母表示
666   ===>    110 110 110   ===>   rw-rw-rw-

5.用户的权限掩码

查看用户的权限:umask命令

修改用户的权限掩码:umask xxx命令

6.计算用户的真实目录权限

问:
用户的默认目录权限为777,
假设用户的权限掩码为002,
那么用户的真实权限是?

答:
777  ===> 111 111 111 ===> rwxrwxrwx
002  ===> 000 000 010 ===> -------w-
(rwxrwxrwx )减去  (-------w-)  等于  (rwxrwxr-x)
所以用户的真实目录权限为rwxrwxr-x  ===>  111 111 101 ===> 775

7.计算用户的真实文件权限

问:
用户的默认文件权限为666,
假设用户的权限掩码为002,
那么用户的真实权限是?

答:
666  ===> 110 110 110 ===> rw-rw-rw-
002  ===> 000 000 010 ===> -------w-
(rw-rw-rw- )减去  (-------w-)  等于  (rw-rw-r--)
所以用户的真实文件权限为rw-rw-r--  ===>  110 110 100 ===> 664

8.计算时为什么用字母相减而不直接用数字相减

举例:
若用户的权限掩码为033,
按照数字形式计算用户的文件权限,666-033=633,
但我们按照数字的形式计算会得到
(rw-rw-rw-)减去(----wx-wx)等于(rw-r--r--) 换算成数字是644

这是为什么呢?
因为数字形式,666,033实际上是八进制表示法,
我们在运算的时候最终和二进制有出入,
如果真的想用数字计算的话,不能666-033这样减,还需要做奇偶处理


【如果umask的部分位或全部位为奇数,
那么,在对应为奇数的文件权限位计算结果分别再加1就是最终文件权限值。】
具体计算样例参考这个链接:
[这个博主讲的很清楚](https://www.cnblogs.com/liujiacai/p/8319923.html)

9.在一个空目录下执行umask 333; touch hello;命令后,hello文件的权限为?

hello文件默认最大权限为666 ==> rw-rw-rw-
权限掩码:333 ==> -wx-wx-wx
(rw-rw-rw )  减去  (  -wx-wx-wx)   等于  (r--r--r--)   ==>  444
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值