【Linux】Linux权限

avatar
作者
筋斗云
阅读量:1

文章目录

在这里插入图片描述

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权限是如何规定的

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

在这里插入图片描述

  • 文件的类型

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修改)

  1. chown修改拥有者
    格式: chown [参数] 用户名 文件名

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

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

在这里插入图片描述

  1. chgrp修改所属组
    格式:chgrp [参数] 用户组名 文件名

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

在这里插入图片描述

  1. 同时修改拥有者和所属组
    格式:chown 拥有者:所属组 文件名

在这里插入图片描述

3.目录文件权限的含义

  1. r的含义

对于目录而言,r权限限制是否允许我们查看目录下的文件内容
在这里插入图片描述

  1. w的含义

目录文件有w权限时:

在这里插入图片描述

去除目录文件的w权限:
在这里插入图片描述
在这里插入图片描述

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

  1. 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权限

本篇文章就到这里啦~

在这里插入图片描述

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!