【Linux】权限:(详细讲解含图例!!)用户分类、文件属性、文件类型(file)、角色划分(chown、chgrp)、文件权限(chmod)、目录的权限(默认权限、权限掩码、粘滞位)


1. 权限的概念

权限是用来约束“人”的行为的,同时有些访问对象天然就不具备一些“属性”。

2. Linux 的用户分类

用户分类:
root:就是我们平时所称的 “超级管理员”,几乎可以干任何事情
普通用户:在操作系统中 root 只有一个,普通用户可以有很多个
关于用户的切换 tips:
su 用户名:在同一个 bash 下进行身份切换,不加用户名默认切换为 root
su -:让 root 重新登陆
exitctrl + D:退出命令
sudo:普通用户没有权限的行为,可以用 sudo 对单条指令进行提权(前提是该普通用户在 root 的信任列表里)

3. Linux 的文件属性

文件可以有的属性是:读r、写w、执行x - 代表该位置没有权限,读写执行三个字符的位置含义是确定的

在这里插入图片描述

3.1 文件类型

在 Linux 下,操作系统 不用文件后缀区分文件类型,而是用 文件属性中,第一列的第一个字符 来区分文件类型

注:我们使用程序的时候还是需要文件后缀的,例如我们 gcc mycode.c
文件类型介绍:
-:普通文件 – 文本、可执行、归档文件…
d:目录
b:块设备(block) – 磁盘…
c:字符设备 – 键盘、显示器
p:管道文件
s:网络文件(socket)
l:链接文件(link)

file – 查看文件类型

file 文件名

3.2 拥有者 & 所属组 & others

角色划分:
文件拥有者
文件所属组:对 others 进行权限的分组
文件的 others:除了拥有者以外的用户都是 others

注意:任何类型的用户都可以扮演不同的角色~

chown – 修改拥有者

choose owner.
root 下,更改指定用户为文件拥有者:chown 指定用户 文件名

非 root 用户在前面加 sodu

chgrp – 修改所属组

choose group.
root 下,更改指定用户为文件所属组:chgrp 指定用户 文件名

# 普通用户下,将 mytest.txt 的拥有者和所属组都给 Kevin
$ sodu chown Kevin:Kevin mytest.txt

4. Linux 文件权限

在这里插入图片描述

chmod – 文件权限修改

方式一:

添加文件权限:chmod 角色+rwx 文件名

减少文件权限:chmod 角色-rwx 文件名

  角色对应:所有者 u,所属组 g,others o,所有角色 a
  其实 chmod 还有一个权限位置,作 t,粘滞位,见文末粘滞位篇。这里主要介绍 ugo
方式二:

用 8 进制转化成权限进行设置:chmod 8进制的三位数 文件名

  将有权限作1,没有作0,r-x 可以写作 101,转换成 8 进制就是 5
  将 rwxr-xr-x 写作二进制 111 101 101,转化成 8 进制就是 755
# 添加相应权限
$ chmod u+x,g+r,o+x mytest.txt
# 去掉所有权限
$ chmod a-rwx mytest.txt
# 将权限设作 rwxr-xr-x 
$ chmod 755 mytest.txt
# 去掉所有权限
$ chmod 000 mytest.txt

5. 🚩目录的权限

如果我们要进入一个目录,只有一种权限是必须的,就是 x 执行程序
目录权限的解读:
r查看 目录里的 文件名 + 文件属性 的权限
w:向该目录中 创建新文件 的权限
x进入 目录的权限

5.1 🚩默认权限 和 权限掩码

先观察下面代码:
在这里插入图片描述

为什么 我们创建的普通文件(不包括可执行文件),为什么默认权限是从 644 开始的?
为什么 目录的默认权限,是从 755 开始的?

(注:不同的操作系统,默认权限可能不同,我们重点关注默认权限的生成过程)

这里引入两个概念:

☝️ 起始权限:是系统设定的
普通文件 的起始权限:从 666 开始
目录文件 的起始权限:从 777 开始

关于我们所看到的 默认权限,也就是 最终权限,其实 是由 起始权限 转换而成的

转化是通过 权限掩码 得来的。

权限掩码:
1.查看权限掩码的命令为 umask,他是可修改的,修改命令为 mask 0xxx(x 为 8 进制的数字)
2.权限掩码是系统为了更好的控制文件权限专门设置的
3.不同系统的权限掩码可能不同

✌️ 最终权限 / 默认权限 = 起始权限 & (~umask)

该公式的计算逻辑:
在起始权限中,去掉在 umask 中出现的权限,且不能影响其他权限

🤪定义看蒙了没关系~
🌰举例,上图:
在这里插入图片描述
可以看到笔者输入 umask 后显示为 0022,对应文件权限的八进制的三位数,取后三位。故,笔者系统此时的权限掩码为 022,我们以此进行举例讲解。

在这里插入图片描述

5.2 🚩粘滞位

一些背景:
在使用 Linux 的时候,未来可能会有一些 共享目录,被所有的普通用户共享,用来保存普通用户产生的临时数据。
共享的目录通常是由 root 提供的,普通用户作为 others 访问。值得注意的是,文件被所有人共享的时候,受文件权限约束,但是别人可以随意删除!!!🥵
粘滞位 就是为了让用户们共享文件,且可以保护 共享文件 不受别人删除。

为什么拦不住别人删除??是权限的 bug 吗?我们可以回顾一下 w 权限

实际上 w 权限,不光是限制别人能否创建文件,也限制了别人 能否删除文件。可想而知,如果关闭了这个权限,同时也阻止了别的用户进行文件创建,所以粘滞位的作用是 w 权限代替不了的。

总结:粘滞位是 只能 添加给 共享文件 的权限
命令为:chmod +t 共享文件名

设置粘滞位后,能删除文件的就只有 所有者root

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值