linux基础:链接、引用计数、文件类型和权限

链接

软连接(符号链接):

  • 创建软链接时一定要使用绝对路径,否则创建出来的软链接文件是失效文件。
  • 软链接文件不存储具体数据,只存储原文件的绝对路径。(一旦创建大小不变)
  • 当软链接对应的原文件被删除时,软连接仍然存在,但失效了。
  • 源文件和软链接各自拥有不同的Inode号和Block块数。
  • 两个文件不管修改哪一个均可同步
  • 软链接文件权限为rwxrwxrwx,但最终生效权限以源文件为准。
  • 软链接既可以链接文件,也可以链接目录,并可以跨区创建。
    在这里插入图片描述

硬链接:

  • 一个文件有多个名字时,名字之间互为硬链接,且对应同一个文件。
  • 当删除有硬链接的文件时,只要没有删除掉最后一个,文件仍然存在并能打开。
  • 文件详细信息中第二列的数值:源文件+硬链接的和(N-1=硬链接数)
  • 拥有硬链接的文件,在修改了内容之后,Inode号不变。有多地保存了文件指向位置。
  • 不能对目录创建硬链接,并且不能跨区创建。因不同分区有各自的Inode号,跨区可 能冲突。

创建方式:

软链接:

# 格式:ln -s 源文件(绝对路径) 目标位置(目标位置/新名字)
$ ln -s /root/1.txt /tmp

可以为不存在的文件创造软连接,但是是失效的。

硬链接:

# ln 源文件 目标位置(目标位置/新名字)
$ ln /root/1.txt /tmp

引用计数:

  • 普通文件:
    硬链接+源文件的和
    在这里插入图片描述

  • 目录文件:
    当前目录内一级子目录数量。
    在这里插入图片描述

    • 一级子目录:当前目录下创建的目录
    • 二级子目录:一级子目录下创建的目录
    • 如:/a/b/c:b是a的一级子目录,c是a的二级子目录。

文件类型:

查看:ls -l或stat或file

在这里插入图片描述

  • - :普通文件
  • d :目录文件
  • l :软链接文件-快捷键
  • b :块设备文件-存储设备
  • c :字符设备文件-输入输出设备
  • s :套接字文件,用来实现两个进程之间通信的文件
  • p :管道文件:处理多个进程对同一文件存取先后顺序问题。

当显示设备类文件的详细信息时,他的第五列不再是文件大小,而是设备编号,前半部分是主设备号,代表设备类型;后半部分是从设备号,代表同类设备中的第几个。
在这里插入图片描述

权限

在这里插入图片描述

权限类型:

  • 对于文件:

    • -:无权限
    • r:能查看文件内容(cat more less head tail)
    • w:能修改和编辑文件内容(echo vi/vim)
    • x:执行权限(设置执行权限的一般都是脚本或程序或命令)
      #Linux中默认新创建和新上传的文件不允许有x权限,保证系统安全性。
  • 对于目录:

    • -:无权限
    • r:能看到目录内有哪些文件(ls)cd系统内置命令,不受限制
    • w:能在目录内创建、删除、重命名。(mkdir、touch、echo、cp、mv、rm)
    • x:是否能进入目录(cd)

对于目录来说r权限和x权限不能独立存在,否则没有意义,说以目录的最小权 限是—,其次是r-x。

用数字表示权限位:

  • r: 4
  • w: 2
  • x: 1

如:

  • rwxr-xr–的权限用数字表示就是754(分别是所有者、所有组、其他人)
  • -rw-r–r-- : 644 #普通文件的默认权限
  • drwxr-xr-x: 755 #目录文件的默认权限;文件具有执行权限。

修改权限命令:chmod

选项:

  • -R:将设置到目录上的权限,递归设置到文件上。
    小心使用,因为一般文件不该有x权限。

文件归属:

  • 所有者:u - user 默认是文件创建者,可修改
  • 所属组:g - group 默认是文件创建者所在的组
  • 其他人:o - other 除去所有者和所属成员以外的其他人
  • 所有人:a - all

文件权限:

  • 读: r
  • 写: w
  • 执行: x
$ chmod	u+x	filename
$ chmod	o-x	filename
$ chmod	+x	filename

# +x	相当于a+x

数字权限位的使用:

# 把一个文件权限改为rw-r--r--
$ chmod	644	filename
# 不要随便给文件设置777权限,权限过大很危险。

实验测试:

  • 使用root用户创建一个目录(权限:755),并在目录下创建一个新文件(权限:644 修改为777),尝试使用普通用户身份对文件进行删除,发现无法删除。
    在这里插入图片描述

  • 再次使用root用户身份创建一个目录(权限:755修改为777),并在该目录下创建一个新文件(权限644),尝试使用普通用户对文件进行删除
    在这里插入图片描述

  • 总结:对文件的删除权限并不在文件上,而在该文件所属目录(即:对目录有w权限, 就可以删除目录内的文件)

实验前提:使用普通用户测试,超级管理员不受权限限制。

# 创建用户
$ useradd	username

# 设置密码
$ passwd	username

Linux私有组机制:

  • 创建用户时,系统会先创建一个和用户名相同的组名,然后再创建用户,并加入到该组内。
  • 权限最小化:保证这类用户创建出来的文件只属于该用户
    文件归属修改命令:chown
格式一:
$ chown zhangsan filename
#修改文件所有者

格式二:
$ chown :zhangsan filename
#修改文件所属组

格式三:
$ chown	zhangsan:zhangsan		filename
#同时修改文件的所有者和所属组

":"是分隔符号可以使用"."代替

 -R:递归设置
在修改目录的归属时,连带目录内所有的子文件都修改。

umask

  • root身份: 0 022
  • laow身份: 0 002

第一个0代表后续数字是八进制数制

合理最大权限:

  • root:
    普通文件:644 + 022=666
    目录文件:755 + 022=777
    #对位相加法
  • 普通用户:
    普通文件:664 + 002=666
    目录文件:775 + 002=777
    #对位相加法

【最大权限】减去【umask的值】等于当前用户创建文件的【默认权限】。

【最大权限】-【umask值】=【默认权限】

# 临时修改umask值:
$ umask 0022

注意:
不能总结为:
超级管理员的umask是:022
普通管理员的umask是:002

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值