Linux权限详解

发布时间:2024年01月22日

我们之前讲过了权限的简单知识,现在我们来进行详细讲解。

面对如上这张图片,我们今天就通过知识讲解,来把其中的大部分信息学明白

我们都知道,图中第一个符号:即d/-表示为文件类型

之前我们也大概讲过了:d表示为目录文件? ?-表示为普通文件

那么问题来了,后面九个英文又代表什么意思呢?

关于这个问题,由于图中两个文件不同,所以我们先分开讲解。

我们就先拿text.txt文件进行讲解。

上面的九个字符三个为一组,共三组,分别表示为:拥有者 所属组 other

而英文字母的意思我们先学习在了解上面的分组吧。

r:表示为reading,即对于这个普通文件用户有读的权限

w:表示为writing,即对于这个普通文件用户有写的权限

x:表示为可执行权限,这个大家先知道我们后面会讲

具体来说:(我们现在只对普通文件)

r:具有读取文件内容的权限;
w:Write对文件而言,具有修改文件内容的权限;
x:execute对文件而言,具有执行文件的权限

?

现在我们在来看这个图,是不是大家对这九个英文有了更加深入的了解,我们将上面的知识结合来看,前三个英文字母表示为---拥有者对于普通文件的权限,中三个英文字母表示为---所属组对于普通文件的权限,后三个英文字母表示为---other对于普通文件的权限。

那么我们来验证一下吧!

在验证之前,我们先带大家学习两个新指令

1.chmod
?功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名

用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

?

如图:

当然我们也可以连用:

这样我们就可以更改命令了。

现在我们再探讨一个问题?

谁可以更改命令呢?
首先root一定可以更改,其次拥有者也可以更改,其他人肯定是不能改的。

权限存在有什么意义呢?

肯定是用来保护用户文件的安全性的。

好了,现在我们对于十个英文字母有了深入的了解,现在我们要学习后面的内容了,

仔细看最上面的图片,我们发现图中还存在两个名字,请问他们分别代表什么意思呢?

聪明的你一定看出来了,是的,第一个名字表示拥有者,第二个名字则表示为所属组。

学到这里,我们要告诉大家一个概念:

Linux只会对一个用户进行一次识别,如果是拥有者,那么是不会对其是否为所属组进行识别的,这样就可能出现权限问题。

那么我们可以修改拥有者、所属组吗?

现在我们就来带大家认识新的两个指令。

chown
?功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名

普通用户需要提权,sudo才行,root才可以直接换

2.chgrp
?功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名

其实我们也可以通过八进制来操作。

现在我们对于一个文件的属性大部分都是清楚了,现在我们结合下图理解即可。

我们之前简单讲解了文件类型,那么我们就讲文件有什么类型进行补充:

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

磁盘文件:

c:字符设备文件

在这里我们补充知识点:

我们知道Linux是不像windows哪样以.后缀区分不同文件的,但是我们要注意的是Linux是可能区分后缀的,如gcc,只有以.c后缀才能编译。

我们学完普通文件的权限问题,现在我们是不是该讨论目录文件的权限问题了。

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

?

简单理解:(对于普通用户)

r:用户具有读取目录文件中的内容

w:用户具有向目录文件中写的权限

大家可能会发现我们无论是新建一个目录文件还是普通文件,刚开始就是有一定的权限的,这个就是文件掩码:

umask
?功能:
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002

如图:

我们当然可以修改:

我们最终的文件权限等于:开始权限&(~umask)

最后,感谢大家的支持!

文章来源:https://blog.csdn.net/2301_79813267/article/details/135754332
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。