文件类型
Linux通过ls -l 的第一个属性列来区分
window是区分文件类型的:后缀名
Linux不通过后缀区分文件类型!但是并不表示Linux不用后缀名
Linux系统不以文件后缀作为区分文件的类型,并不代表gcc不需要!(Linux系统不等于gcc)
总而言之,Linux不区分文件类型,但是Linux上面的工具可能区分。对Linux文件后缀的态度是可以使用!
d目录文件
-普通文件
文本文件,可执行程序,库等都可以称为普通文件。
l链接文件
b块设备文件
p管道文件
c字符设备文件
显示器的本质是字符设备
文件权限
文件权限:文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么操作。
权限=用户角色(具体的人)+文件权限属性
33为一组分别三个角色:拥有者,所属组,other
这些角色对应两种人:root超级用户,普通用户
- 33中一个3:第一个字符:是否具有读权限:是r,否-
- 33中一个3:第二个字符:是否具有写权限:是w,否-
- 33中一个3:第三个字符:是否具有可执行权限:是x,否-
目录权限
- x权限:进入一个目录
- r权限:用户能否查看指定目录内的文件信息
- w权限:决定用户是否能在指定的目录内新建/修改/删除文件
- 文件(目录)=文件内容+文件属性
- 目录就是文件
- 目录的文件内容:就是里面所有文件信息详细数据情况
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
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,为什么呢?
umask:Linux中的默认权限掩码!
创建文件和目录的时候,要从起始权限中过滤掉掩码(过滤不是简单的减法)在umask中出现过的权限全部去掉。
umask在不同机器上是不同的很正常!
最终权限=起始权限&(~umask)
全1为1,有0则为0
Q2"可执行性"权限
能执行=具有可执行权限+是一个可执行文件
Q3"删除"权限
删除一个文件和这个文件的权限没有关系,和这个文件所属目录的权限有关系。
只有这个文件所属目录的属性有"w"权限(在这个目录下删除文件的权限)。
Q4怎么共享一批文件
如果我们想在Linux下,由多个用户建立一个共享文件,被大家共同访问,怎么办?
- 首先这个文件不能在各用户的家目录下创建。只能在系统的非用户目录下创建。(根目录下)
- 其次权限必须全部放开,才能各自交互
为了防止乱删文件情况出现,我们使用【粘滞位】来解决。
【1】粘滞位
chmod +t 目录
+t只能对目录使用
超级管理员删除
该目录的所有者删除
该文件的所有者删除
【2】添加交互人员到所属组
🎇
- 目录的可执行权限是表示你可否在目录下执行命令。
- 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
- 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
- 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
🙂感谢大家的阅读,若有错误和不足,欢迎指正