Linux的权限和粘滞位
一、Linux权限的认识
一、用户的分类
Linux中的用户分为两种:
- 超级用户:在linux系统中可以做任何事情,不受约束。
- 普通用户:在linux系统中收到约束
其中,超级用户的命令提示符是#,普通用户的命令提示符是$.- 超级用户和普通用户的切换:超级用户切换为普通用户:su username;普通用户切换为超级用户:su;如下图所示
二、linux的权限
权限 = 不同的角色+文件属性
图中划线说明
- 角色的划分
- 所属用户----第一个cw
- 所属用户组----第二个cw
- others----除了cw的其他用户
- 文件的属性
- 第一位代表文件类型(d是文件夹,-是普通文件)
- 第2-10代表权限
- 权限中的前三位是文件所属用户的权限
- 权限中的中间三位是文件所属用户组的权限
- 权限中的后三位是其他用户的权限
- r代表读,w代表写,x代表可执行,-代表无相应文件属性。
三、修改权限
刚创建的普通用户这权限没有,那权限没有,怎么办,可以对权限进行修改。
修改文件属性(rwx)
在root用户下对普通用户进行文件属性修改
chmod u+r /home/a.txt
chmod u+rwx /home/a.txt
chmod u+rwx /home/a.txt ==>给所属用户操作
chmod u+rwx,g+rwx,o+rwx /home/a.txt ==> 给所有人进行操作
## u是所属用户,g是所属用户组,o是other
修改所属用户
在root用户下对文件或文件夹进行所属用户修改
chown cw:cw a.txt ==>同时更改所属用户和所属用户组
四、目录的权限以及权限掩码
- x:如果目录没有可执行权限,则无法cd进入到目录中。
- w:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件
- r:如果目录没有可读权限,则无法用ll等命令查看目录中的文件信息。
- 此时,用户只要具有目录的w权限,就可以删除目录中的文件,而不论这个用户是否有具有这个文件的w权限----------所以有了粘滞位,来限制用户的w权限。
- 同时也引出一个问题,目录的默认权限为775,普通文件权默认权限是664。系统设定的普通文件起始权限为666,目录文件为777。怎么就不一样呢?系统为了更好的控制文件,所以有了权限掩码的概念。
- 默认权限 = 起始权限 & (~umask),umask叫做权限掩码。默认umask=0002,其中为八进制数,首位先不管,看后三位代表000 000 010。
示例:
默认权限的计算
五、粘滞位
粘滞位(Stickybit),或粘着位,是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。
添加粘滞位
chmod +t /home/文件名 ==> 为文件添加粘滞位
## 添加粘滞位后,权限的最后一位为t,代表粘滞位
二、总结
- 目录可执行权限表示能否在目录下执行命令
- 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法进入目录,
- 如果目录有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
- 权限掩码变化,默认权限也跟着变化
- 权限的修改可以有多种方式,对单操作,对多操作。