Linux权限
- 1.Linux权限的概念
- 2.Linux的用户分类
- 3.Linux的文件类型
- 3.1如何看待Linux下的文件后缀
- 4.Linux的文件权限
- 5.Linux下切换用户指令
- 6.Linux文件访问者的分类(拥有者、所属组、other)
- 6.1root 和普通用户 与 拥有者和所属组和其他人的关系
- 6.2 如何描述一个文件的权限?
- 7.更改一个文件的权限
- 8.更改拥有者,所属组
- 9.文件权限
1.Linux权限的概念
首先在理解Linux的权限之前,我们先来对比一下我们日常生活中的权限。在生活中,权限一般是用来限制人的,你没有权限你就做不了一些事情。
比如在玩游戏时,你没买皮肤,那么你就用不了该皮肤,这也是一种限制人的权限。比如你在看一个看电影的网站上想写代码,这是不可能的,因为它不具备这样的条件。
那么我们可以知道,权限是用来限制人的,访问的对象可能天然就没有这种“属性”。
换句话说,权限就是一件事情是否允许被谁“做”
所以 权限 = 人 + 事物属性
2.Linux的用户分类
Linux上的用户可以分为 root(超级用户)和 普通用户
两者的区别就是:
root:可以不受任何权限的约束,在linux上可以“无法无天”,所以我们在使用root时,要小心操作,不要做一些危害到操作系统的操作。
普通用户:就相当于我们普通人,在linux上是会受到权限的约束的。比如一个文本文件没有w(写)权限时,我们不能写入任何东西进这个文本文件。
3.Linux的文件类型
已下图为例,我们知道每一行最后面的是文件名,包含了后缀。
在Windows中,我们是以后缀来区分各种类型的文件的。
而在Linux中,而是用文件属性中第一个字符来区分各种文件。
d:文件夹
-:普通文件(文本,可执行文件,归档文件等)
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
3.1如何看待Linux下的文件后缀
既然Linux操作系统不以文件后缀来区分文件,那么我们该如何看待文件后缀呢?
1.首先,文件后缀我们想用就用,操作系统不用,但是我们人可以使用。
2.可以将后缀看成文件名的一部分。
3.我们所说的是Linux操作系统不需要后缀区分文件类型,并不代表其他软件不需要后缀,比如gcc这个软件是用来编译C语言代码,那么我们的后缀就得是.c,而不能是.txt
我们来看第三点
比如:
code.c文件内容如下,cat显示文件的内容
因为是.c后缀,所以我们可以编译,这是gcc这个软件需要的。
但是如果我们把code.c的后缀用mv指令改成.txt再用gcc编译
就会出现第三行的提示,因为gcc软件无法编译.txt后缀的文件
接下来我们回到第一步,也就是编译成功默认生成a.out这一步,我们运行这个文件是不需要用到gcc这个软件的,这已经是Linux的程序了,那么也就是说,不论我们文件的后缀是什么,我们都能运行。
这是未改之前
我们把它修改成a.txt,可以看到确实还可以运行
这再一步证实了,Linux操作系统上的程序与后缀无关。
4.Linux的文件权限
Linux的文件权限可以分为
r(读)
w(写)
x(执行)
再次看文件属性列表
第一列代表文件类型,那么第一个空格之前九列就是文件的权限
可以看到,有r w x,至于为什么有这么多,我们稍后会解释。
5.Linux下切换用户指令
前面我们讲过,Linux下有两种用户,一种是root(超级用户),一种是普通用户。
那么我们如何在这两种用户之间进行切换呢?
su指令,可以看一下这篇文章的第37个指令,这里不再赘述
linux基本指令
值得注意的是当我们是root身份切换到普通用户时,是不需要那个普通账户的密码的,可以之间切换。
当我们是普通用户,切换到root或者另一个普通用户时,则需要密码。
6.Linux文件访问者的分类(拥有者、所属组、other)
文件的拥有者:谁创建了这个文件谁就是拥有者。
文件的所属组:所有用户都要隶属于某一个组。
其他人(other):除了拥有者和所属组之外的就属于other
在Linux中,第一个空格之前的除第一列之外的剩下九行就是这三种角色的权限
3个字母为一组,共三组,分别表示拥有者权限,所属组权限,其他人权限
比如第一行rwx是拥有者的权限,表示可读可写可执行
r-x是所属组权限,表示可读,可执行,-指的是该位置对应的权限表示无,这里是无可写的权限
剩下三个 r-x是其他人的权限,表示可读,可执行
但是这里我们的是以root身份,所以这些权限对root来说没用,我们切回普通用户。
这里两个名字一个指的是拥有者,一个指的是所属组,我们这里这个文件既是拥有者,也是所属组。
因为other(其他人)可以有很多个,所以这里只列出拥有者和所属组,剩下的就是其他人。
6.1root 和普通用户 与 拥有者和所属组和其他人的关系
root和普通用户都是具体的人。
而我们拥有者和所属组和其他人则是一种角色。
就像生活中一个人可以扮演多种角色一样,老师,父亲,母亲,儿子,女儿。
root和普通用户都可以扮演成拥有者,所属组,其他人。
6.2 如何描述一个文件的权限?
还得上面说的 权限 = 人 + 文件属性 吗?
我们以下面这个文件为例描述一个文件的权限。
该文件的拥有者ffg具备可读,可写,可执行的权限,所属组ffg具备可读,可写,可执行的权限,其他人具备可读,可执行的权限。
7.更改一个文件的权限
需要用到chmod指令
同样在下面这篇文章中第31条指令有讲到,这里不再赘述
Linux基本指令
8.更改拥有者,所属组
需要用到chown和chgrp指令,同样可以看看这篇文章第32条和33条指令
Linux基本指令
9.文件权限
在Linux中有目录权限这个概念,像文件一样,目录也有相应的权限。
比如r,w,x
在普通用户下:
如果我们要进入一个目录,我们需要的权限是:x(可执行权限)
对于目录来讲,如果没有r(可读)权限,我们无法查看当前目录下的文件名+文件属性
如果没用w(可写)权限,我们无法直接在该目录下创建新文件。