文章目录
1.什么是权限
在我们日常的生活中
我们所接触的权限有,如:杰伦的歌曲大多需要vip才能听,普通用户却看不了,再如我们去看电影,要电影票才能进去观看,用来做区别事物的某种属性和人规则的方法就是权限。
权限的更深理解
- 如果想要对某些文件具备某些权限,对应的事物需要具备对应的属性。
- 如果一个事物天然不具备某种属性,那么这种属性的权限也便无异议。
- 对不同事物A的权限,不能转向事物B,相同平行权限不能相互访问。
如:你本身是QQ音乐的vip用户,但是你想在爱奇艺看一部会员电影,这是QQ音乐连看会员电影的功能都没有还怎么谈权限?,你只有QQ音乐的会员,没有爱奇艺的会员,你怎么有权限看会员电影?
权限总结
- 约束人的(对人进行分类)
- 需要对应的事物具有特定的属性
- 人和事物权限需要一一对应
有一个简单认识就够了~
2.权限管理
2.1 Linux的用户分类
Linux下有两种用户:超级用户(root)、普通用户(user)
- 超级用户:可以再linux系统下做任何事情,不受限制。
- 普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
其中超级用户root,其权限是最高的,它可以为所欲为,他可以下载一些程序为所有子用户使用,但是其他子用户却不行,子用户想切到root账号,必须输入密码,root切到子用户是直接进的。同时还可以以子用户的身份对其文件操作,神不知鬼不觉间实现偷鸡换蛋,而且root无视子用户的所有权限
2.2 Liunx文件的属性:
Linux系统不是以文件名 “ 后缀 ” 区分文件类型的,而是通过ll指令显示的 “ 第一个字符 ” 区分文件类型的。
比如一个test.c文件,我们在Linux下可以改成test,还是可以运行,在win就报错,这也是两个系统的区别
注意:
- Linux不以文件后缀区分文件,并不代表gcc这样的编译器不做要求,系统关系后缀,但是在系统上跑的工具需要后缀。
- Linux不以后缀区分文件类型,也可以成Linux并不排斥以后缀作为文件类型。
连接数
连接数对于目录文件,表示它的第一级子目录的个数。每个目录的默认连接数是2,因为每个目录下都有两个隐藏目录 . 和. . 分别表示当前目录和上一级目录,父目录里创建一个子目录,父目录的链接数增加1。对于其他文件,表示指向它的链接文件的个数。
2.3 Liunx文件的分类:
ll输出的七个字段中,第一个字段由10个字符组成的。其中第一个字符所代表的就是该文件的文件类型。不同的字符代表不同的文件类型
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件 通过ll指令可以查看文件或目录的具体信息
2.4 Liunx文件的权限:
权限就是一件事情是否能被特定的人做。
ll输出的七个字段中,第一个字段的剩余9个字符三三为一组代表文件拥有者,所属组,其他用户的权限
从文件访问者角度来讲,可以分成三类:
- 文件和文件目录的所有者(文件拥有者user)。
- 文件拥有者所在的组的用户(文件所属组group)。
- 其他用户(other)。
从文件的权限属性,也可以分成三类:
- r(read - 可读):表示可读取此文件中的实际内容,例如,可以对文件执行 cat、more、less、head、tail 等文件查看命令。
- w(write - 可写):表示可以编辑、新增或者修改文件中的内容,例如,可以对文件执行 vim、echo 等修改文件数据的命令。
- x(execute - 可执行):表示该文件具有被系统执行的权限。在 Linux 系统中,文件是否能被执行,是通过看此文件是否具有 x 权限来决定的,只要文件拥有 x 权限,则此文件就是可执行文件。比如gcc编译后的可执行文件如果没有x的权限,那它就无法被执行。
高度的概念:权限 = 人 + 事物属性
所以权限的概念以及操作,都是围绕着人和文件属性展开的!
描述文件权限的时候,既要涉及到人,又要涉及到这个文件的属性。
2.5 Liunx文件权限的表示方法:
-
字符表示
上面ll显示的rwx就是这种表示方式
-
8进制表示
rwx中三个字符的位置是固定的,要么为真,要么为假,因此可以将这三个字符换为三个二进制位,进而换为一个八进制位进行表示。
2.6 文件访问权限的相关设置方法:
chmod对文件权限的修改
chmod:
功能: 设置文件的访问权限
格式: chmod [参数] 权限 文件名
用户表示符+/-=权限字符:
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
下面写一共例子,这种就是多敲的,和早期学C语言一样
chown:
功能: 修改文件的拥有者
格式: chown [参数] 用户名 文件名
在上面我们可以看出,在修改文件的拥有者需要sudo提权。不过我们可以通过超级用户root,它可以直接强制将文件给任何人。
chgrp:
功能: 修改文件或目录的所属组
格式: chgrp [参数] 用户组名 文件名
修改所属组,同样也是也提权!
2.7 目录访问权限:
目录的可读可写可执行代表的含义与文件是不同的:
- 读权限(r)表示具有读取目录结构列表的权限,可以看到目录中有哪些文件和子目录。一旦对目录拥有读权限,就可以在此目录下执行 ls 命令,查看目录中的内容。
- 写权限(w)对于目录来说,w 权限是最高权限。对目录拥有 w 权限,表示可以对目录做以下操作:
- 在此目录中建立新的文件或子目录;
- 删除已存在的文件和目录(无论子文件或子目录的权限是怎样的);
- 对已存在的文件或目录做更名操作;
- 移动此目录下的文件和目录的位置。
对目录拥有 w 权限,就可以在目录下执行 touch、rm、cp、mv 等命令。
- 执行权限(x)目录是不能直接运行的,对目录赋予 x 权限,代表用户可以进入目录,也就是说,赋予 x 权限的用户或群组可以使用 cd 命令。