权限是什么呢?
通过一定条件,拦住一部分人,给另一部分人权利来访问某种资源
权限的本质:
权限与人有关:比如你要进你的学校是要看你是个人吗,重要的是看的是你是不是学校内学生,即你的角色
当然也和事物的属性有关:比如你能在爱奇艺刷题吗,能在力扣看电影吗?
既然与人和事物的属性有关,那我们就从这两点进行展开。
人对应Linux的用户,
事物对应Linux的文件
目录
- Linux的用户:
- root与普通用户的切换:
- Linux用户在文件中的体现:
- Linux中的文件:
- 修改文件权限:
- 对目录权限的理解:
Linux的用户:
Linux下有两种用户:超级用户(root)、普通用户。
- 超级用户:可以再linux系统下做任何事情,不受限制
- 普通用户:在linux下做有限的事情。
- 超级用户的命令提示符是“
#
”,普通用户的命令提示符是“$
”。
root与普通用户的切换:
既然有两种用户,那么也会存在两者之间如何相互切换的问题。
我们可以通过命令进行切换
命令:su [用户名]
功能:切换用户。
例如
-
要从root用户切换到普通用户user,则使用 su user。
-
要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的密码。
那么有没有不变成root却有root权利的办法呢?
答案是确定的。
我们可以通过sudo
指令提权进行权限升级,但是需要额外的yum
Linux用户在文件中的体现:
Linux有三种角色,分别为:拥有者 所属组 other
可以看到我们创建了一个文件,
现在告诉你第一个cyc
是这个文件的拥有者
第二个cyc
是这个文件的所属组
这里你可能又会困惑,所属组是什么呢?
所属组是为了在多人协作时进行更细腻的管理而衍生出,在特定条件下有优势
那么other
呢,除了拥有者与所属组之外的都是other
现在你可能又会有疑问,你刚刚说Linux有两种人,现在又说有三种角色,不是很矛盾吗?
恰恰相反,他们是相互补充的概念,
角色是由人来扮演的,
一个普通用户即有可能是一个文件的拥有者,也有可能是另一个文件的other
Linux中的文件:
关于这两个文件的对比,在红箭头的地方,表示的是其文件类型,有很多种,我们只需稍微了解一下即可
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
但是我们现在需要知道两种:
第一个是d
,为目录文件
第二个是-
,为普通文件
剩下的9个字符是什么呢
我们提到过Linux有三种角色,这9个字符三三一组
,
分别为
拥有者的一组,所属组的一组,其他人的一组
那么每一组的字符又代表什么呢?
如果为-
,即代表没有相对应的权限
修改文件权限:
- 需要指令
chmod
进行操作
文件和文件目录的所有者:u—User
文件和文件目录的所有者所在的组的用户:g—Group
其它用户:o—Others
用法:
chmod u+-rwx,g+-rwx,o+-rwx filename
图片实例:
- 需要
chown
与chgrp
指令
功能:修改文件的拥有者与所属组
用法:
但是我们进行操作时没权限,因为不能强制吧文件给别人,除非你是root,所以在操作时要进行指令提权,即sudo
对目录权限的理解:
我们说Linux中一切皆文件,那么目录也是文件
目录也会有那10个字符(最左边的)
那么目录所对应的rwx
的功能是什么呢?
- 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
- 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
- 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
这样也会衍生出一个问题,如果除了拥有者,别人也有w
权限,就可以随意删除你目录下的文件了,这显然是有问题的
故我们引出一个粘滞位
的概念
当一个目录被设置为"粘滞位"(用chmod +t)
,则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
关于权限的总结:
- 目录的可执行权限是表示你可否在目录下执行命令。
- 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
- 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。