权限
权限的概念
意见事情能否运行被谁"做"
权限 = 人 + 事物属性
Linux上的用户分类
1、root,超级管理员,几乎可以做任何事情
2、普通用户
两者如何切换?
当现在身份是普通用户时,输入su指令就可以切换到root用户,再输入Ctrl + d就能切换回去

上面的su指令只是单纯的进行了身份变换
而使用su- 指令是让root进行重新登录,是处在自己的家目录里

那么当root用户想切换到普通用户时?其实root用户不需要知道密码就可以直接切换

对单条指令进行提权
当普通用户看不了一个文件后,就可以对单条指令进行提权

角色划分
1、文件拥有者
2、文件所属组
文件所属组怎么解释?

假设有两个组,A组B组;A组张三写了一段代码,组长小A想看,张三就把文件的other查看权限打开了,小A就可以看了,但是另一组的李四和小B也能看了
所以为了确保代码只能自己人看,就有了文件所属组这个概念,A组的所有人就把自己写的代码放在A组的所属组里。
3、文件的other

Linux的文件属性
可以有的属性是:读,写,执行
文件的权限和类型
文件类型
Linux下,不用文件后缀来区分文件类型,而是用文件属性中的第一列的第一个字符来区分文件类型

-:是普通文件,文本可执行程序,归档文件等
d:目录
b:块设备
c:字符设备
p:管道设备
s:网络socket文件
l:链接文件link
Linux下不用后缀来区分文件,是指的操作系统层面,而软件依旧需要用后缀来区分再来看一下文件类型后面9个符号的意义

文件自身具有的权限属性有三种
r ->可读
w ->可写
x ->可执行
- ->该位置的权限是 没有
三个字符的位置含义是确定的

就像上面的cmd.txt文件拥有者:具有可读,具有可写,不具有可执行权限
如何修改文件的权限?
先看看文件权限

使用chmod指令修改

拥有者权限用 u 表示拥有者,+ 表示添加权限,r表示可读权限
上面的指令就表示,给test.txt文件添加可读的权限
再看看文件权限

看一下这里的指令

这里的 g 就表示所属组,所以意思就是给所属组加上可写的权限

还有

则是指给other添加可执行的权限

也可以一次性添加多个权限

去掉权限就是 -

如果是想给所有角色都加x可执行权限

这里的a就是all的意思
以及

再看看cmd文件,这里权限如果拥有就用1表示,没有就用0表示
则cmd文件的三个角色的权限就可以表示为 110 110 100
二进制转换为八进制,表示为664
所有文件权限又多了一种改法

上面的777中每个7就代表三个1,所以意思就是给所有的角色赋所有的权限
000则是取消所有的权限

有没有权限有什么区别?
现在先给test.txt文件取消所有的权限

当我们以普通用户的身份查看文件时,就会被拒绝

但当我们是超级用户时,就能无条件查看文件

这里我们想把test.txt文件的所有者改成root,但是好像改不了

但当指令用root用户发出后,指令就可以运行了

这里就是改变文件的所属组

这个时将拥有者和所属组都改变为一个用户

以及改变角色权限
