理解 Linux 文件系统

Linux文件权限

文件类型与访问权限

  1. 文件类型

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

  1. 访问权限
    读 R(4): Read对于文件:具有读取文件的权限; 对于目录:具有浏览目录信息的权限
    写 W (2): Write对于文件:具有修改文件内容的权限; 对于目录:具有删除或移动目录下文件的权限
    执行 X (1): excute对于文件:具有执行文件的权限;对于目录:具有进入目录的权限

在这里插入图片描述

文件权限值表示方法:

(1)字符表示
在这里插入图片描述

(2)八进制数字表示
在这里插入图片描述

相关指令

su [用户名]

功能:切换用户
(从普通用户切换到root,使用su -su root


chmod  [参数] 权限 文件名

功能:设置文件的访问权限
常用选项: R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式
① 用户表示符+/-=权限字符
+ / - / = : 向权限范围增加 / 取消 / 赋予权限代号所表示的权限
用户符号:
u:拥有者  g:拥有者同组用  o:其它用户  a:所有用户
②三位8进制数字

chmod u+w /home/abc.txt
chmod 664 /home/abc.txt

chown [参数] 用户名 文件名

功能:修改文件的拥有者

chgrp [参数] 用户组名 文件名

功能:修改文件或目录的所属组


umask 

umask 语法: umask [-S][权限掩码]   # -S 以文字的方式来表示权限掩码。
功能说明: 查看或者修改建立文件时的权限掩码。

umask      #查看
umask 044  #设置

设文件创建默认权限为mode,则实际权限为 :mode & unmask
新建文件默认权限0666, 新建目录默认权限0777 (文件默认没有可执行权限)
root 用户默认掩码0022, 普通用户默认掩码 0002.


粘滞位

对于目录权限来说,只要用户具有目录的写权限,那就可以删除目录的文件不论用户是否有这个文件的写权限。
为了避免这种自己文件会被别人删除的问题,Linux 引入了粘滞位。
注意:

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

chmod +t 

在这里插入图片描述

当一个目录设置了 粘滞位chmod +t ),那该目录下的文件只能

  1. 被超级管理员( root )删除
  2. 该目录的所有者删除
  3. 该文件所有者删除

即被设置粘滞位的目录下,其他用户可以创建文件,但是只能删除自己的文件,不可以删除别人的(除root)。

文件描述符

软硬链接

在这里插入图片描述

 硬链接是不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候: 1. 在目录中将其删除 2. inode link count - 1,系统调用会检查inode link count的数值,如果他>=1,那么inode不会被回收。因此文件的内容不会被删除。

 硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。

 软链接可以跨文件系统,硬链接不可以;软链接可以对一个不存在的文件名(filename)进行链接(当然此时如果你vi这个软链接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);软链接可以对目录进行连接,硬链接不可以。两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建软链接。
链接https://www.nowcoder.com/questionTerminal/1b695f9055ed4017a9fe578ef8b02c34 来源牛客网

说说软硬链接的区别

  1. 定义不同
    软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。
    硬链接就是一个文件的一个或多个文件名。把文件名和计算机文件系统使用的节点号链接起来。因此我们可以用多个文件名与同一个文件进行链接,这些文件名可以在同一目录或不同目录。
  2. 限制不同
    硬链接只能对已存在的文件进行创建,不能交叉文件系统进行硬链接的创建;
    软链接可对不存在的文件或目录创建软链接;可交叉文件系统;
  3. 创建方式不同
    硬链接不能对目录进行创建,只可对文件创建;
    软链接可对文件或目录创建;
  4. 影响不同
    删除一个硬链接文件并不影响其他有相同 inode 号的文件。
    删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。


未完…继续完善

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值