对于上一节的回顾:
umask:控制linux系统默认权限的一个命令。
file:644.(默认)
dir:755.(默认)
改变文件及目录的默认权限:
umask 044 033
如何计算新umask下,文件及目录的默认权限。
目录:
777-umask=
文件:
umask的每个位都为偶数的情况,666-umask=
umask的数字中有奇数的情况,666-unask,然后把umask对应数字的奇数位加1。
5.5setuid和setgid位。
5.3.3 chmod字符式权限表示法。
chown:
当只改变用户组的时候,chown .hsp a.sh和chgrp hsp a.sh是一样的含义。
chmod:改变文件访问权限,分为数字和字符表示法,-R递归。
chown:改变文件拥有者以及用户组。-R递归。
chgrp:改变用户组。-R递归。(几乎不用。)
chown -R hsp.hsp hsp:把目录hsp中的所有文件的主用户,用户组全部改为hsp。(-R是递归的意思。)
演示环境:
先删除oldboy和oldgirl。
一个家庭(用户组)incahome:家庭成员oldboy,oldgirl。
如果存在这种问题(如下图):
解决方法:
文件的拥有者对文件的管理基本上都是特殊(再修改完文件时可以强制执行保存退出,用户组就按照权限(不能强制保存退出)来了。)的。
文件的属性放在inode里边,文件名在上一级目录的block里面,文件的权限在inode里面。通过文件,文件名,可以找到inode,有权限的话才能找到block内容。我们访问文件都是看文件的权限,而删除文件都是删除的文件名。文件名在上一级的目录的block里面放着。受上一级目录的inode控制的。所以删除的时候要看上一级目录的权限的。注:删除文件跟文件权限没有关系。
所以一般的用户组都删除掉,除非使用chown(如下图),odboy才可以删掉test.sh:
结论:
乐读:
虽然提示没有权限,但是可以看到文件名。
目录属性(实际操作):
dr-xr-xr-x:主用户,用户组,其他的人都能进入,查看,但是不能创建和删除。
d--x--x--x:不能列表(ls),但可以进去,不能创建,不能删除。
dr--r--r--:可以显示内容但是报错,也就是说没有x是不正常显示的。
d-wx-wx-wx:test目录颜色会变。可以进去test目录,但是闭着眼睛创建。(相当于创建之后但是看不到。)
变颜色(一个很好玩的东西)。
下面是例子:
drwxrw-r-x:ll cd touch ls ls -l rm -rf 进不去也就不能创建。
上图:
oldboy是主用户,任何功能都能使用。
对于上图:
不能列表,不能进入,不能创建,也不能删除。
对于上图:
能列表,能进入,不能创建,不能删除。
对以上总结:
改变默认情况下的创建目录(755),文件(644)的权限。
正常情况下:root的umask的umask是0022,普通用户的umask是0002.
root下的创建文件(644),目录(755):
普通用户下的创建文件(664),目录(775):
解决方法:
但是会出现错误,错误如下:
错误的解决方法:
对于目录来讲,没有影响。
对于文件来讲当umask的位上是奇数时,得出的结果加上1。如下图:
图表:
注意:普通用户的umask未必是002,除非满足下面的条件:
gu=un,umask为002(普通用户)。
gn!=un,umask为022。
关于/etc/login.defs配置文件中的umask(如下图):
077为home目录的权限,777-umask(077)=700=drwx------。如下图:
特别提示:在一般的生产场景,umask的使用不多见,在此,大家了解下umask是怎么回事即可。