Linux中有很多指令,这些都需要我们理解去记;但上百条指令我们很难记全。此时最好的记忆方法,就是多用—就是多上手操作。
功能:
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
.
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask格式: umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用
户默认为0002。实例:
umask 755
umask //查看
umask 044 //设置计算:
文件:666 &(~002)= 664 -----> rw _ rw _ r _
目录:777 & (~002)= 775 -----_> rwx rwx r _ x
实操与我们的计算不谋而合。
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中。
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。
于是, 问题来了~~
只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。
这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉?
验证过程:
我们先在根目录下创建一个公共目录(mytmp1)。
明显发现这个目录下 Ding用户的文件,可以被wu用户拿捏。
为了解决这个不科学的问题, Linux引入了粘滞位的概念。
例子:
chmod + t mytmp1

这个时候,作为普通用户的wu就无法删除普通用户Ding的文件了。

总结:
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由一、超级管理员删除 (root)
二、该目录的所有者删除
三、该文件的所有者删除