【Linux】Linux权限

戴墨镜的恐龙 2024-07-15 15:37:06 阅读 89

文章目录

1.Linux权限的概念2.Linux权限管理2.1权限是如何规定的2.2文件访问权限的相关设置方法2.2.1更改文件的访问权限2.2.2更改文件的拥有者、所属组(都得使用root修改)

3.目录文件权限的含义4.umask5.粘滞位

在这里插入图片描述

1.Linux权限的概念

权限就是用来约束一个人或者一个群体的。Linux权限的概念也很简单,通俗来说权限就是: 某一件事情是否允许被某个人做(某一件事情就对应Linux中的各种文件),而人就是指使用Linux的用户。

Linux下有两种用户:超级用户(root)、普通用户

超级用户:在linux下可以做任何事情,不受限制,命令提示符是 #普通用户:在linux下做有限的事情,命令提示符是 $

用户切换指令:

su 用户名

su 英文就是 switch user 或者 substitute user identity

从root切换至普通用户: su 普通用户名

在这里插入图片描述

从普通用户切换至root:su root(root可以省略),此时系统会提示输入root用户的密码

在这里插入图片描述

su命令后,命令行最前面的用户名显示的是当前操作的用户名;最后面的名称是当前目录的名称

2.Linux权限管理

对于用户、目录、文件,Linux是如何进行管理的呢?

2.1权限是如何规定的

文件访问者的分类

文件和目录的所有者 u——(user)文件和目录的所有者所在的组的用户(所属组) g——(group)。小组之内的用户可以访问,其余用户不可访问其它用户 o——(other)

文件的属性

在这里插入图片描述

文件的类型

d:文件夹

-:普通文件

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件

权限

r:读权限。Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

w:写权限。Write对文件而言,具有修改文件内容的权限;对目录来说具有删除、创建、修改目录内文件的权限

x:执行权限。Execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

文件权限值的表示

字符表示:

在这里插入图片描述

八进制表示:

在这里插入图片描述

2.2文件访问权限的相关设置方法

2.2.1更改文件的访问权限

格式:chmod [选项] 用户+/-权限 文件名

常用选项

R -> 递归修改目录文件的权限

说明:只有文件的拥有者和root才可以改变文件的权限

其中,权限分为:

+:向权限范围增加权限代号所表示的权限

-:向权限范围取消权限代号所表示的权限

=:向权限范围赋予权限代号所表示的权限(= 写不写都可以)

对于用户名,使用以下简写:

u:拥有者

g:所属组

o:其它用户

a:所有用户

在未更改文件的权限前,权限默认是这样的

在这里插入图片描述

使用chmod指令给拥有者和所属组加上x权限,多个权限之间使用逗号分隔

在这里插入图片描述

使用-r选项,递归似的设置文件权限

未设置前:

在这里插入图片描述

设置后:

在这里插入图片描述

除了使用字符,还可以使用八进制数来设置

在这里插入图片描述

在这里插入图片描述

2.2.2更改文件的拥有者、所属组(都得使用root修改)

chown修改拥有者

格式: chown [参数] 用户名 文件名

我们发现无法将我创建的文件给别人,为什么呢?

在这里插入图片描述

因为在你将文件给别人时,需要经过别人的同意。所以,如果想修改文件的拥有者,必须使用root用户

在这里插入图片描述

chgrp修改所属组

格式:chgrp [参数] 用户组名 文件

对于拥有者而言,普通用户也无法修改,必须使用root用户

在这里插入图片描述

同时修改拥有者和所属组

格式:chown 拥有者:所属组 文件

在这里插入图片描述

3.目录文件权限的含义

r的含义

对于目录而言,r权限限制是否允许我们查看目录下的文件内容

在这里插入图片描述

w的含义

目录文件有w权限时:

在这里插入图片描述

去除目录文件的w权限:

在这里插入图片描述

在这里插入图片描述

所以:目录文件是否有w权限,限制是否允许我们在当前目录下进行创建、删除、更改文件名

x的含义

目录文件是否有x权限,限制是否允许我们进入对应的目录

在这里插入图片描述

4.umask

在我们创建普通文件目录文件时,默认权限为什么是664和775呢?

在这里插入图片描述

正常而言,新建目录文件时,它的权限应该是777(拥有所有权限),带x是因为需要进入目录;新建普通文件使,它的权限是666(不需要执行权限)。

但默认为什么是664和775呢?- - - 权限掩码umask的作用

Linux为了允许我们可以自由配置起始权限,设置了权限掩码umask。

默认情况下,umask的值是0002

在这里插入图片描述

修改权限掩码

在这里插入图片描述

在这里插入图片描述

5.粘滞位

在root下,我创建了一个目录文件和普通文件

在这里插入图片描述

由于目录文件的w权限我们可以知道,一个普通文件的修改和删除不取决于该文件的属性,而取决于文件所属的目录的权限属性

那么dir是普通用户的目录,那普通用户是不是能删除root在其目录中的文件呢?

在这里插入图片描述

我只有读你文件的权限,但是你在我的目录下,我就能删掉你的文件,这样合理吗?

对于每个用户而言,只有自己和root能进入家目录,其它人一概进不去

在这里插入图片描述

所以:

在Linux系统中,普通人是不能进入另一个人的家目录里的如果它进了,那么目录的拥有者就可以删除进入人在目录中创建的文件

那会不会有这样一种场景,两个人共享了一个文件进行文件的访问,但是两个人没有任何关联,仅仅是进行文件的共享。那么这个共享文件就不能放在二者的家目录里面

那么就为它俩创建一个共享文件

在这里插入图片描述

为了让它俩都能写这个文件,还需要放开w权限

在这里插入图片描述

然后wk创建了一个共享文件

在这里插入图片描述

为了让temp也可以写,那就给other加上w权限

在这里插入图片描述

那么temp就可以写该文件

在这里插入图片描述

但是有一天,wk不想让temp读,也不让他写了,那就去掉它的 rw权限,此时temp就不能读写了。

在这里插入图片描述

既然不让我看,那你们也别看了,我删掉你的文件目录对other有w权限

在这里插入图片描述

既然是由于目录的w权限导致的,那把w权限去除可以吗?

shared-dir本来就是让other共享的,把w权限去掉还谈什么共享呢?我们都不能在文件中写内容了

所以为了解决这个不科学的问题,Linux引入了粘滞位的概念

粘滞位格式:

目录的拥有者(一般是root):chmod o+t 文件名

此时它的x权限就变成了t

在这里插入图片描述

此时wk又创建了一个文件,并且只允许所属组的人读写,此时temp还能删除我的文件吗?

在这里插入图片描述

此时temp就删不了了,这样就达到了我们想要的效果。

在这里插入图片描述

所以当一个目录被设置为"粘滞位",则该目录下的文件只能由

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

其它人一概不允许,t是一种特殊的x权限

本篇文章就到这里啦~

在这里插入图片描述



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。