Linux的权限(3)

目录

文件类型

​d目录文件

-普通文件

l链接文件

b块设备文件

p管道文件

c字符设备文件

文件权限

目录权限

umask

粘滞位

Q1umask权限默认值664/775

Q2"可执行性"权限

Q3"删除"权限

Q4怎么共享一批文件

【1】粘滞位

【2】添加交互人员到所属组


文件类型

Linux通过ls -l 的第一个属性列来区分

window是区分文件类型的:后缀名

Linux不通过后缀区分文件类型!但是并不表示Linux不用后缀名

Linux系统不以文件后缀作为区分文件的类型,并不代表gcc不需要!(Linux系统不等于gcc)

总而言之,Linux不区分文件类型,但是Linux上面的工具可能区分。对Linux文件后缀的态度是可以使用!

Linux的权限(3)_第1张图片

Linux的权限(3)_第2张图片d目录文件

-普通文件

文本文件,可执行程序,库等都可以称为普通文件。

l链接文件

b块设备文件

p管道文件

Linux的权限(3)_第3张图片

c字符设备文件

显示器的本质是字符设备

Linux的权限(3)_第4张图片

文件权限

文件权限:文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么操作。

权限=用户角色(具体的人)+文件权限属性
33为一组分别三个角色:拥有者,所属组,other
这些角色对应两种人:root超级用户,普通用户

  • 33中一个3:第一个字符:是否具有读权限:是r,否-
  • 33中一个3:第二个字符:是否具有写权限:是w,否-
  • 33中一个3:第三个字符:是否具有可执行权限:是x,否-

Linux的权限(3)_第5张图片 

目录权限

  • x权限:进入一个目录
  • r权限:用户能否查看指定目录内的文件信息
  • w权限:决定用户是否能在指定的目录内新建/修改/删除文件
  • 文件(目录)=文件内容+文件属性
  • 目录就是文件
  • 目录的文件内容:就是里面所有文件信息详细数据情况

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中

可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

Linux的权限(3)_第6张图片

umask

umask
功能:查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

粘滞位

[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由以下才能删除

  • 一、超级管理员删除
  • 二、该目录的所有者删除
  • 三、该文件的所有者删除

Q1umask权限默认值664/775

当你创建一个文件/目录,它的默认值就是664/775,为什么呢?

Linux的权限(3)_第7张图片 

umask:Linux中的默认权限掩码!

创建文件和目录的时候,要从起始权限中过滤掉掩码(过滤不是简单的减法)在umask中出现过的权限全部去掉。

umask在不同机器上是不同的很正常!

最终权限=起始权限&(~umask)

全1为1,有0则为0

Linux的权限(3)_第8张图片 

Q2"可执行性"权限

能执行=具有可执行权限+是一个可执行文件

Q3"删除"权限

删除一个文件和这个文件的权限没有关系,和这个文件所属目录的权限有关系。

只有这个文件所属目录的属性有"w"权限(在这个目录下删除文件的权限)。

Q4怎么共享一批文件

 如果我们想在Linux下,由多个用户建立一个共享文件,被大家共同访问,怎么办?

  • 首先这个文件不能在各用户的家目录下创建。只能在系统的非用户目录下创建。(根目录下)
  • 其次权限必须全部放开,才能各自交互

为了防止乱删文件情况出现,我们使用【粘滞位】来解决。

【1】粘滞位

 chmod +t 目录

+t只能对目录使用

超级管理员删除

该目录的所有者删除

该文件的所有者删除

Linux的权限(3)_第9张图片

【2】添加交互人员到所属组

 

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
  • 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

感谢大家的阅读,若有错误和不足,欢迎指正

你可能感兴趣的:(Linxu系统编程,linux)