通过前面的学习, 我们知道了Linux下的用户分成两类:
- 超级用户(root): 一般不受权限的限制
- 其他用户: 会受到权限的限制
su — — 身份切换过去, 但是家目录不变(并不是重新登录了一下)
su - — — 家目录发生变化, 重新登录一下
exit 或者 ctrl + d
su 普通用户
- 由root切换到普通用户 — — 不用输入密码
- 由A普通用户切换到B普通用户 — — 需要输入B用户的密码
root用户的权限 > 普通用户的权限
相信, 以后工作的大部分时间我们用的都是普通用户
那么如果有一种需求 — — 需要短暂使用root用户权限, 那么我们该怎么办?
sudo 指令 — — 对这个指令使用root用户的权限
adduser
来创建用户, 然后系统不信任你⇒ 因为你没有在系统信任的白名单中(在一个特定的配置文件中)mutong用户的密码
啊?mutong
用户的密码来获得短暂提权, 这不是理所应当的嘛️日常生活中, 我们所熟知的权限是什么? 包含哪几个方面?
主体
和 客体
这两个方面进行分析人的身份/ 角色 + 事物的原本属性
事物的属性 ⇒ 文件的属性
⇒ Linux下的权限 = 人的身份/ 角色 + 文件的属性
️那么身份有哪一些? 文件有哪些属性呢?
拥有者, 所属组, 其他
可读(r), 可写(w), 可执行(x)
️前面说用户分类有root 和 普通用户; 现在身份的划分又有 拥有者, 所属组 和 其他. 这很冲突啊?
️拥有者, 所属组看见了, 其他呢?
if (拥有者) else if (所属组) else (其它)
这样的一个逻辑链路来进行 认定用户身份
的.️上面 muyu 即是拥有者 也是所属组, 那么权限是两个叠加吗?
r
, 而所属组的权限是 r w
r w
身份是存在着优先级的
拥有者 > 所属组身份认定
的时候, 看到有拥有者, 就不用看后面的了.
在上述例子中:
muyu — — 拥有者 r w
root — — 其它 r
mutong — — 其它 r
muyu可读可写, mutong可读不可写这都很正常
root 也可读可写
⇒
这就突出了root超级用户的强大, 一般不受权限的限制
普通用户会受到权限的限制
权限是由 身份/角色 和 文件属性两部分组成.
所以, 修改权限也是这两个方面的修改
由于文件权限的特殊表示方法, 故修改文件权限也有两种方法
在这个方法里:
拥有者 u
(user)
所属组 g
(group)
其它 o
(other)
chmod u/g/o +(-) 文件
特例: chmod a +(-) u/g/o 文件
️我有一个疑问: 其它(普通用户)肯定修改不了, 那么所属组可不可以进行修改呢?
️为什么可以采用进制的形式?? 为什么是八进制而不是其他的进制??
顺序都是 r w x
Y or N
, 这种也可以看作每个位置的选择只有 1 或 0
进制
的方式000
, 最大为111
⇒ 是八进制身份包括 三种:拥有者, 所属组, 其它
但是我们修改身份的时候只用修改两种: 拥有者 和 所属组
其它不用修改 ⇐ 一个用户不是拥有者, 不是所属组, 那么就是其它喽
指令是 chown
我们先尝试直接用 chown来进行操作
我们想把拥有者的身份给 mutong 用户, 但是被告知 合作未被允许
为什么会出现这种情况?? 那我们该如何修改拥有者的身份呢?
指令是 chgrp
我们也先尝试直接用 chgrp来进行操作
发现这个是跟上面是一样的结果.
[总结]:
指令是 chown
同时改变拥有者 和 所属组:
- 普通用户 — — sudo chown 拥有者(后):所属组(后) 文件
- root用户 — — chown 拥有者(后):所属组(后) 文件
️ 为什么创建的普通文件的起始权限是 664
, 目录文件的起始权限是 775
?
先插一句:
普通文件的起始权限是666
目录文件的起始权限是777
权限掩码
的东东, 记作 umask
. 它存在的意义就是 在权限掩码出现的权限, 在文件的最终权限是不会出现的
0002
. 其实可以把它拆解成两个部分 第一个0 + 后面的八进制表示
umask 值(后)
️拥有者muyu 的d1 文件有 r
属性, 为啥进不去d1目录
呢?? 目录文件的各个属性又都是什么啊??
x
权限放开呢??r 关闭 x 打开
呢?x权限关闭, r权限打开
— — 进不了d1 目录文件里面, d1 目录里面的内容虽然没有权限查看(因为进不去啊), 但是还是输出里面的内容 test.c
x权限打开
— — 可以进入d1 目录文件里面r权限关闭
— — 查看不了d1 目录里面的内容目录文件:
r — — 是否允许用户查看
指定目录下的内容
x — — 是否允许用户进入
目录
w — — 是否允许用户在当前目录下进行创建, 修改, 删除
️如何创建一个共享文件, 使得多个用户可以共同编辑?
拥有者 和 所属组 都是用户本身
且 只有拥有者的权限是全开的, 除了拥有者其他的身份的权限都是关闭的
拥有者 和 所属组都是 root用户
⇒ 所以 跟目录下创建一个共享文件必须是 root用户
(文件所在目录的 w权限)
temp目录的权限
其它的 w 权限是开的啊
~~其它的 w 关闭
创建, 修改
文件了t粘滞位应运而生
⇒ 给目录设置一个 粘滞位, 只允许拥有者 或者 root用户才能删除目录下的文件
把话讲透,可以骂娘,不准记仇