普通文件:
root用户:
- 无论此文件是否给予root用户权限,root用户都可以对此文件进行读操作;
- 如果没有给予root用户“写”权限,root用户可以强制对文件进行编辑,不过强制编辑会覆盖原来的内容;
- 不给予root用户执行权限,root用户就不能在执行此文件了。
普通用户:
- 无论是否是此普通文件的拥有者,若是只有此文件的读权限,就只能读此文件,强行编辑此文件,会覆盖其原来的内容
- 若是普通用户只拥有此文件的“写”、“执行”权限,啥也干不了
目录文件:
r:读目录中的文件属性信息
w:可以在目录中添加或删除文件数据信息
x:是否可以进入到目录中
root用户:
- root用户对目录信息有绝对权限,无论属主是否是自己。
普通用户:
- 对于目录来说,写权限和读权限,都需要有执行权限配合
- 如果想对目录进行操作,必须对目录赋予执行的权限
权限计算:
在Linux中新创建文件和目录权限一致:
- 目录文件都是:755
- 普通文件都是:644
这是因为umask值决定的,默认umask值设定在/etc/profile文件中,可通过修改配置文件/etc/profile 永久修改umask的值。一般默认umask值为:022
计算方式:
- 目录文件(默认最大权限777):777-022=755
- 普通文件(默认最大权限666):
若umask值都是偶数 666-022=644
若umask值有奇数 666-033+11=644 (相应位置上是奇数,就要在相应位置上加1)
特殊权限位:
系统中实际有12个权限位,上面说的是9个普通的权限位,下面说说特殊权限位。
-
setuid 权限位 (SUID)
权限设置方法:chmod u+s 文件 (或chmod 4755 文件)
作用:可以让此二进制文件的使用者临时拥有此二进制文件属主的权限
-
setgid权限位 (SGID)
权限设置方法:chmod g+s 文件 (或chmod 2755 文件)
作用
01:让执行者临时拥有属组的权限(对拥有执行权限的二进制文件进行设置)
02:在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)
-
sticky bit :粘滞位 (SBIT)
权限设置方法:chmod o+t 目录信息 (或chmod 1755 目录信息)
作用:可以将不同用户的文件放置在共享目录中,实现不同用户数据可以互相查看,但是不可以删除其中的文件(只有该目录的所有者可以删除其中的文件)
隐藏权限:
Linux系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏起来的权限,默认情况下不能直接被用户发觉。
-
chattr命令
设置方式:chattr +参数 文件
解锁方式:chattr -参数 文件
参数:
i:无法对文件进行修改;若对目录设置了此参数,则仅能修改其中的子文件内容而不能新建或删除文件
a:仅允许追加内容,无法覆盖/删除内容
-
lsattr 命令
使用方式:lsattr 文件
作用:用来查看某个文件是否被加锁头了