Linux权限篇

1.什么是权限?

生活中,有些事情你不能做,别人能做,这叫别人有做某事的权限;

Linux中,权限的概念也是类似的,特指通过一定的条件,拦住一部分人,给另一部分人权限去访问资源


2.权限的本质

上面说到,权限是限制人的,因此权限一定离不开人;另一方面,权限又跟事物的自身属性相关,你总不能说我去爱奇艺上刷算法题吧

因此,权限 = 人 + 事物属性

这里的“人”特指你充当什么样的角色,而不是你本人是谁;比如你能进入你们学校,是因为你叫xxx,还是因为你是你们学校的学生,所以能进入你们学校

接下来就分别从“人”和“事物属性”这两方面分别谈谈权限


3.Linux中的用户

Linux中的用户有两种:

  • root:超级管理员账号
  • /home/xxx:普通用户

3.1 用户切换

  • 从root切换为普通用户:[su](切换后当前路径不变) 或者 [su -](切换后直接到用户家目录)
  • 从普通用户切换到root:[su] 或者 [su -]

有这样一种情景,我是个普通用户,但我想以root的身份执行一条命令,该怎么办?

第一种方法:在你自己的Linux服务器上,直接[su -]切换成root,再执行命令;但在以后的工作中,我们一般都是普通用户,也不可能登上root账号,所以这种方式显然是不实际的

第二种方法:sudo + 命令,在执行的命令最前面加上[sudo],此时要求输入普通用户的密码;有人会问了,我想以root的身份执行命令,不应该是输入root的密码吗?

实际上,普通用户执行sudo时,默认情况下是不能执行的

需要在root下将普通用户添加到“白名单”列表中,允许普通用户使用指令提权,才能sudo一个命令

因为root已经允许普通用户使用指令提权了,因此sudo时只需要普通用户的密码


3.2 Linux中的“人”

Linux中文件的所属者有三种角色:拥有者,所属组,其他人

文件属性中并没有列出其他人这一栏,因为拥有者和所属组之外的就是其他人,比如我是一个普通用户,去访问别的用户的文件,这时我就是其他人

三种角色跟前面的用户有什么关系?

前面的用户是具体的人,而拥有者,所属组,其他人是具体的角色,角色是需要人来承担的

我有权限访问一个文件,不是因为我是xxx用户,而是因为我是该文件的拥有者或所属组


4.Linux中文件的权限

4.1文件的类型

在Linux中,不用文件的后缀区分文件的类型,也就是说Linux中文件的后缀只是摆设;但还是建议创建文件时加上后缀,便于自己区分

注意:只是Linux系统不以后缀区分文件类型,不代表Linux中的工具不以后缀区分文件类型,比如gcc在编译一个文件时,需要判断该文件是不是一个源代码文件

文件属性中的第一列表示文件的类型

  • -:普通文件
  • d:目录文件
  • b:块设备文件
  • c:字符设备文件
  • p:管道文件
  • l:链接文件

目前,我们只需认识-和d即可

4.2文件的属性权限

文件的属性权限有三种,分别是

  • r:读权限
  • w:写权限
  • x:可执行权限

文件的属性中,除去第一列,往后每三列,分别代表拥有者,所属组,other对该文件的权限

因为权限 = 角色 + 属性,所以以后我们描述一个权限时,应当是拥有者/所属组/other 对该文件 有/没有 r/w/x权限

4.2.1修改权限

在讲如何修改一个文件的权限之前,我们得知道,一个文件的权限谁能修改?​​​​​​​

  1. 该文件的拥有者
  2. root

我们将介绍两种方式来修改权限

第一种方法:chmod​​​​​​​

  • ​​​​​​​chmod [u/g/o/a][+/-][r/w/x] filename

可以看到,去掉了文件对应的权限,就不能对该文件进行读/写/执行操作了

也就是说,对于普通用户,要受到文件权限的约束,即使该文件是自己的

为什么要设置文件权限?

在上述操作中,我们切换了用户,去对一个不属于自己的文件进行操作时,没有对应的文件属性权限就不能执行对应的操作

因此权限的意义就是保证普通用户文件的安全

上述操作中,我是file.txt文件的拥有者,没有r权限,确实不能读文件;但我也是file.txt文件的所属组,且所属组有r权限,但依旧不能读文件,这是为什么?

实际上,Linux的身份认证只识别一次,也就是说,如果你是文件的拥有者,Linux识别你是文件的拥有者后,就只看文件的拥有者权限了

怎么去验证呢?

我们用root修改file.txt文件的拥有者;切换为普通用户,此时我们不是file.txt文件的拥有者,但是file.txt文件的所属组,且所属组有rw权限,因此我们可以对file.txt文件进行读写

权限 = 角色(具体的人) + 权限属性

上面我们介绍了修改文件的属性权限,那怎么修改一个文件的角色呢?

  • chown/chgrp xxx filename
  1. 以普通用户身份修改:需要指令提权,在指令的前面加上sudo
  2. 以root身份修改:随便修改

第二种方法:八进制表示

  • chmod 八进制 filename

一个权限的有无可以用1或0表示,因此我们将一个角色的对应权限表示成二进制,比如rwx就是110,再表示成八进制,也就是6;同样将其他角色的对应权限也表示成八进制

比如,一个文件的拥有者,所属组,other拥有的权限是rwx,rwx,rwx,可以表示成777

如何理解x权限?

一个文件有了x权限是不是就表示该文件可执行了?

可以看到:一个文件可执行 = 该文件本身是一个可执行文件 + 用户有对该文件可执行权限

4.3目录的权限

  • 目录的r权限决定能不能查看该目录中的文件
  • 目录的w权限决定能不能对该目录中的文件进行增删改
  • 目录的x权限决定能不能进入改目录

如何理解目录的rwx权限?

文件 = 内容 + 属性

目录的内容是该目录中所有文件的详情数据

没有r权限就代表不能对目录的内容进行读,也就是不能查看目录中的文件

没有w权限就代表不能对目录进行写,也就是不能修改目录中的文件,包括删除和增加文件

在上面的目录中,我作为一个普通用户,能删除root创建的文件吗?

答案是可以的

因为删除一个文件与该文件本身没有关系,与用户有没有该文件所处目录的w权限有关


5.文件的默认权限

当创建一个文件或目录时,可以看到自动带上了一些权限,为什么就自动带上某些权限呢?

Linux中创建普通文件的起始权限是666创建目录的起始权限是777;但好像跟上面的权限有些不同

文件创建的过程中,会过滤掉umask中出现的权限

文件的最终权限 = 起始权限 & (~umask)​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/267390.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多目标跟踪数据集

目录 DanceTrack数据集 自己改进的可视化代码: DanceTrack数据集 DanceTrack 是一个大规模的多对象跟踪数据集。用于在遮挡、频繁交叉、同样服装和多样化身体姿态条件下对人进行跟踪。强调运动分析在多对象跟踪中的重要性。 GitHub地址:https://github.com/DanceTrack/Dan…

Ubuntu22.04使能root用户

一、背景 安装Ubuntu22.04系统的时候,会要求创建一个用户,并设置密码。为方便后续行文,将此用户称为user_normal,此密码称为normal_pd 安装Ubuntu22.04系统的时候,没有出现任何和root有关的设置 Ubuntu22.04安装完成…

web服务器之——搭建基于http协议的静态网站

目录 准备工作:web服务器搭建 第一步:挂载 第二步:编辑配置文件 第三步:安装软件包 第四步:启动httpd 查看配置文件: 第五步:设置防火墙状态: 重启服务: 查看状态&#xff…

Runtime

Runtime 概念: Runtime是一套底层纯C语言API,OC代码最终都会被编译器转化为运行时代码,通过消息机制决定函数调用方式,这也是OC作为动态语言使用的基础。Runtime的最大特征就是实现了OC语言的动态特性。 消息机制原理 在Objec…

虾皮选品网:知虾选品工具

使用虾皮(Shopee)平台进行选品时,许多卖家都会寻求数据软件和工具的帮助,以分析市场趋势、竞争程度和产品潜力。在这篇文章中,我们将介绍一些推荐使用的虾皮选品数据软件,并探讨它们如何帮助您更好地了解市…

低功耗模式的通用 MCU ACM32F0X0 系列,具有高整合度、高抗干扰、 高可靠性的特点

ACM32F0X0 系列是一款支持多种低功耗模式的通用 MCU。集成 12 位 1.6 Msps 高精度 ADC 以及比 较器、运放、触控按键控制器、段式 LCD 控制器,内置高性能定时器、多路 UART、LPUART、SPI、I2C 等丰富的通讯外设,内建 AES、TRNG 等信息安全模块&#xff0…

排序算法:【冒泡排序】、逻辑运算符not用法、解释if not tag:

注意: 1、排序:将一组无序序列,调整为有序的序列。所谓有序,就是说,要么升序要么降序。 2、列表排序:将无序列表变成有序列表。 3、列表这个类里,内置排序方法:sort( )&#xff0…

自编码器 AutoEncoder

自编码器(AutoEncoder),也称自编码模型,是一种基于无监督学习的数据维度压缩和特征表示方法,目的是对一组数据学习出一种表示。1986年 Rumelhart 提出自编码模型用于高维复杂数据的降维。由于自动编码器通常应用于无监…

〖大前端 - 基础入门三大核心之JS篇(51)〗- 面向对象之认识上下文与上下文规则

说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:哈哥撩编程,十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司…

web漏洞原理与防御策略,web漏洞怎么挖掘

目录 Web安全的重要性 ​编辑常见的Web漏洞类型及其原理: 1、跨站脚本攻击(XSS): 2、SQL注入: 3、跨站请求伪造(CSRF): 4、远程文件包含(RFI)和本地文件包含(LFI):…

ONLYOFFICE协作空间2.0:文档协作更便捷

〇、前言 大家好我是陈橘又青,在之前的文章中,我向大家介绍了ONLYOFFICE:免费、开源、跨平台的办公神器,想必大家都已经了解到了ONLYOFFICE在企业办公、文档处理工作中的方便快捷。ONLYOFFICE 2.0版本也已于近日更新。 今天就来跟…

市场全局复盘 20231211

昨日回顾: SELECT TOP 10000 CODE,成交额排名,净流入排名,代码,名称,DDE大单金额,涨幅,所属行业,主力净额,DDE大单净量,CONVERT(DATETIME, 最后涨停时间, 120) AS 最后涨停时间 FROM dbo.全部A股20231208_ALL WHERE 连板天 > 1AND DDE大单净量 > …