Linux权限【超详细】

news2024/11/22 16:52:27

📙 作者简介 :RO-BERRY
📗 学习方向:致力于C、C++、数据结构、TCP/IP、数据库等等一系列知识
📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持


在这里插入图片描述


目录

  • 扩展知识:shell命令以及运行原理
  • 1.Linux权限的概念
  • 2.Linux权限管理
    • 1.文件访问者的分类(人)
    • 2.文件类型和访问权限(事物属性)
      • 2.1文件类型
      • 2.2文件权限属性一共有十个字符(包括-)
      • 2.3.文件权限值的表示方法
      • 2.4 文件访问权限的相关设置方法
        • 1.指令chmod
        • 2.指令chown</font>
        • 3.指令chgrp</font>
  • 3.目录权限
    • 总结:
  • 4.umask
  • 5.file指令:
  • 6.粘滞位
  • 7.关于权限的总结


扩展知识:shell命令以及运行原理

🍁Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。
通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
从原理上来说:

Shell是Linux操作系统中的外壳程序,它扮演着“用户和Linux内核之间的桥梁”的角色。具体而言,Shell将用户输入的命令解析并传递给Linux内核处理,同时将Linux内核的处理结果翻译并返回给用户。因此,通过Shell,用户能够更加高效、安全、低成本地使用Linux内核。(我的理解是相当于操作系统的系统调用的功能)

从技术角度上来说:

Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
1.将使用者的命令翻译给核心(kernel)处理。
2.同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash。


1.Linux权限的概念

🎄Linux下有两种用户:

超级用户(root)普通用户
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
在这里插入图片描述

命令:su [用户名]
功能:切换用户。

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

我们没有普通用户,我们进行创建一个
在这里插入图片描述
Linux中root用户只允许存在一个,非root用户可以存在很多个
我们先使用这个普通用户登录
我们如果是普通用户如何转换成root用户使用

普通用户切换至root用户
1、按上su,然后按照提示输入相应的root密码,就可登录到root权限下。
2、按上sudo su,然后按照提示输入相应的root密码,就可登录到root权限下(这个命令下,一般不需要输入相应的root密码)。
3、按上su root,然后按照提示输入相应的root密码,就可登录到root权限下

root用户切回普通用户
1、只需执行命令:su user (user是你自己安装时候的用户名),
2、直接输入exit
3、Ctrl+D组合键退出
如何给root用户设定密码:
只需执行命令:sudo passwd root然后根据提示一步一步来。

这里我们使用的是su -,作用是能从普通用户权限变为root用户,但是需要输入root用户的密码
在这里插入图片描述
我们如果是root用户如何转换成普通用户使用
我们这里使用热键【Ctrl+D】
在这里插入图片描述
普通用户切换成root,需要输入root的密码 —>拥有root密码的人一般都是系统的管理员
root账号变成普通,不用认证的
普通用户变成另一个普通用户需要对方的密码

🐥为了让我们对权限的概念更加清晰我们来学习一个新指令—>sudo

sudo
对指定的指令进行提权

我不想把我自己变成root,但是我还想让普通用户以root的权限执行一条命令怎么做呢?
在你的指令前面无脑加sudo就可以

在这里插入图片描述
但是我们在执行sudo命令时出现了如下提示:
xx is not in the sudoers file. This incident will be reported.
这句话的意思是我们的用户不在我们的sudoers的文件里
原因分析:一般这种情况是创建了新用户,没有对应修改sudoers文件或者group文件。

我们可以看看这个文件,这是Linux系统里面的用户的配置文件
在这里插入图片描述
这个文件相当于我们Linux里的一个白名单,如果一个用户的用户名在这个配置文件中,才允许这个用户执行sudo

如果一个用户的用户名不在这个配置文件中,不允许这个用户执行sudo
我们需要以root的身份将用户添加进去才能使用sudo
这个白名单只有管理员将值得信任的用户添加进去,是为了管理服务器的安全性,因为sudo命令可以让普通用户使用root用户的权限。

在这里我们先不讲解如何进行处理,处理内容我们会在以后涉及到。我们先来看其他人成功的例子
在这里插入图片描述
我们使用了一次输入密码后,第二次第三次就不用输入密码了


2.Linux权限管理

🐥我们先来弄清楚几个概念

1、权限一定是用来限制人的“能还是不能”
我们在爱奇艺里普通用户和vip用户的权限是不一样的
2、对应的操作对象一定要有对应的满足人的需求的属性
比如我们想在爱奇艺里刷题—>他没有这个功能

这就对应了我们Linux里

1、文件访问者的分类(限制人)
2、文件类型和访问权限(文件权限)—r w x


1.文件访问者的分类(人)

Linux限制人更多的限制的是人的角色身份

比如说张三是一个学校校长,校长办公室只有他能进入,而这个权利不是因为他是张三,而是因为他是校长,因为他这个身份角色

这里我们的Linux将用户分为三个角色

  • 所有者—文件和文件目录的所有者:u—User(中国平民 法律问题)
  • 所属组—文件和文件目录的所有者所在的组的用户:g—Group(不多说)
  • other—其它用户:o—Others (外国人)

我们先变成普通用户查看一下文件

在这里插入图片描述
那么在这里对应的只要不是拥有者不是所属组就是对应的other

好了,拥有者好理解,这个文件被谁创造就被谁拥有嘛,other也好理解,除了创作者谁都是other
那我们Linux为什么要存在一个所属组呢?这个是干嘛的?🤨

  • 首先Linux是允许我们建立各种各样的组的,可以独立建立一个组,也可以很多人,以某个名字做组名
  • 然后我们使用所属组的意义就在于我们创建的文件可以让多人看到,如果没有所属组的存在,那么除了所有者,其他所有人都是other,那么别人想看到你写的代码的时候都无法访问,还有一点就是,这个所属组适合于分小组开发,也利于管理

接下来我们来学习一下文件权限属性


2.文件类型和访问权限(事物属性)

在这里插入图片描述

2.1文件类型

在win下,有文件类型,通常使用后缀标识
Linux的文件类型不通过后缀区分(不代表Linux不用后缀)
在Linux文件中 第一个字符表示我们的文件类型

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

2.2文件权限属性一共有十个字符(包括-)

在这里插入图片描述

2.3.文件权限值的表示方法

  • 字符表示方法
    在这里插入图片描述
  • 8进制数值表示方法
    在这里插入图片描述

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

1.指令chmod

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限


chmod第一种用法:用户表示符+/-=权限字符

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

🎄我们来引入第一批操作:
我们了解了权限之后我们如何来修改权限?
在这里如果修改一个文件的权限,一般得是文件的拥有者,也就是说文件是你的,你才有权限去改

我们将user简称为u,将group简称为g,将other简称为o

在这里插入图片描述
在这里插入图片描述

我们还可以一次性编辑两个权限
在这里插入图片描述
我们还可以一次性编辑所有用户的权限
在这里插入图片描述
我们想去掉所有人的所有权限
在这里插入图片描述
这样所有人的权限都没有了
那我们想给所有人的权限加上r
我们可以使用a-all代表全部
在这里插入图片描述

我们接下来进行一下验证
在这里插入图片描述
我们对文件进行写操作,这里表示我们没有写的权限
在这里插入图片描述
我们修改一下权限就又可以正常运行了
在这里插入图片描述
对于x属性—是否可执行,当我们有了可执行的权限了之后还要看我们的文件是否可执行
这里有一个细节

就如同我们上面的拥有者以及所属组两个的名称都是一个人的时候,这个文件的拥有者没有可执行权限,但是所属组有可执行权限啊,因为我既是拥有者也是所属组啊
但是在这里,如果我们的拥有者没有可执行权限的时候,我们的所属组以及other都无法执行,就算有可执行权限也不可执行。

这个原因是因为当我们一个用户去执行这个文件的时候,不是先看你对这个文件是否有可执行权限,而是判断你是否是这个文件的拥有者,所有它只会看一个一个按照你的名称去对比,它第一次对比你是拥有者,他就会以拥有者的权限对你能否运行此文件做判断

回到正题:我们切换成root权限发现,我们既能读文件也能写文件,这说明了权限在root下形同虚设
现在才发现权限只是限制普通用户的
在这里插入图片描述


chmod第二种用法:三位8进制数字

我们的权限为rwx这三个
那我们能不能以111来代表这个呢?
1代表有0代表无
rwx–>111–>代表的二进制为7
-wx—>011–>代表的二进制为3
那么我们可以这样设置文件:
我们使用777让所有人都有了rwx权限
在这里插入图片描述
我们使用000让所有人都没有了rwx权限

在这里插入图片描述


2.指令chown

功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
非root用户需要sudo提升权限操作,或者有root密码切换成root权限
在这里插入图片描述


3.指令chgrp

功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
非root用户需要sudo提升权限操作,或者有root密码切换成root权限
在这里插入图片描述


3.目录权限

对一个目录而言,如果进入一个目录,需要什么权限?
权限对于root用户是没有影响的,我们换到普通用户
我们一个权限一个权限进行尝试


首先,我们进入到自己的目录,权限全开的情况下是可以进的
在这里插入图片描述

我们先去掉读权限
在这里插入图片描述

我们依然可以进目录,我们再单独去掉写权限
在这里插入图片描述

我们还是可以进入目录,我们再单独去掉可执行权限
在这里插入图片描述
这个时候我们发现没办法进入我们的目录了
这说明,我们要进入一个目录我们需要的是x权限

那对于目录来说我们的读权限和写权限分别对应什么呢?
我们在这个目录里创建一个文件
权限全开的情况下,我们创建文件还是可以的
在这里插入图片描述

我们去掉读权限
在这里插入图片描述
我们无法看到目录里文件的信息了
所以我们对目录没有读权限我们就无法查看目录文件信息
可以进行创建文件,但是无法查看信息
在这里插入图片描述
我们去掉写权限
在这里插入图片描述
去掉写权限后,我们无法创建文件,但是可以打印目录文件信息

总结:

对于目录文件:
读权限—r—是否可以进行查看目录文件信息
写权限—w—是否可以在目录里新建文件和删除文件
可执行权限—x—是否可以进入目录
在这里对于root用户就算所有权限都没有,它依然可以进行所有操作,root不受权限控制


4.umask

功能:

查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

格式:

umask 权限值

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

在这里插入图片描述

-rw-rw-r-- 1 cmj cmj 0 Feb 3 12:04 test.aa
drwxrwxr-x 2 cmj cmj 4096 Feb 3 12:04 test.ee
为什么我们创建的普通文本文件:默认的权限不是777,而是664
为什么我们创建的目录文件:默认的权限不是777,而是775

首先,我们的Linux系统中可执行程序占比不高,只有一些必须可执行的程序才会给它加上可执行权限,一般的文件系统不会默认去加,而是由用户去自主决定添加,像我们的目录以及可执行程序必须给它加的会给它加上可执行权限,一般的文件可以不加,让用户自主添加。
所以:
对目录而言,它的起始权限以777开始==
对普通文件来说起始权限以666开始

那么这样说我们创建的时候普通文件不是666而是664,目录为775,这是为什么呢?

这是因为umask—>权限掩码
它是可以让用户自主定制文件创建的时候的默认权限

我们打印umask
在这里插入图片描述
会出现四个字符,我们只关心后面三个字符就可以了。
八进制002对应的就是000 000 010
这就我们的权限掩码
其含义是:
从起始权限中去掉在umask中出现的权限

例:
我们普通文件起始权限为
666—>110 110 110
002—>000 000 010
我们要去掉这个存在的1
变成了110 110 100—>664

注意:我们在这里不是使用的减法,而是去掉权限掩码
释义:起始权限这一位为0,权限掩码为1的时候,我们就可以不管这一位
—>起始权限后三位001 AND (umask)010不变就行
只有原起始权限这一位有1的时候,相对应掩码这一位也是1我们就可以去掉
用计算机语言来说就是 起始权限&(按位与)(-umask)=最终权限(默认)

同理我们的目录的其实权限可以自行计算一下
算出来也是775


接下来我们如何定制权限掩码呢:

我们设置为003(原002)
在这里插入图片描述
我们创建一个文件一个目录
在这里插入图片描述
在这里插入图片描述
003—>000 000 011
new1.txt—>-rw-rw-r–(664)—>110 110 100
new2—>drwxrwxr–(774)—>111 111 100
使用按位与操作
文件:110 110 110—>110 110 100(664)
目录: 111 111 111—>111 111 100(774)
可以看到我们与上面的默认权限是一样的


5.file指令:

功能说明:辨识文件类型。
语法:file [选项] 文件或目录…
常用选项

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容

我们想查看文件更详细的数据,可以使用file指令
在这里插入图片描述


6.粘滞位

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

首先我们要清楚:

一个文件能不能被删除并不取决于文件的权限,而在于这个文件所在目录的权限

Linux的home目录里存放的是每一个用户对应的文件,默认权限设置的是700,只有本用户能访问进去(root用户除外)
在这里插入图片描述

这样的话其中一个用户想展现给另一个用户看一个文件,但是没有权限
Linux为了实现让多个用户之间可以实现数据共享,在根目录会有一个tmp目录是可以所有用户都进去访问,rwx的权限都是全部开启的
在这里插入图片描述

但是删除一个文件和你这个文件的权限无关,这个目录下的每一个人都具有权限删除创造文件,所以你的文件放在这里也能被其他用户给删除掉,别人一个不小心删除了你宝贵的文件,有可能会导致你从头再来
这个时候我们就引出一个可以给other加上一个权限t
我们在tmp目录下创建一个test.txt文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到我们的test.txt文件的文件权限最后面紧跟了一个T,这是原x的位置,现在变成了T
这样其他用户就会没有权限删除你的这个文件

上面这个T称为我们的粘滞位:给目录中的other设置的一个权限位,具有x的意义,同时也进一步对目录权限进行特殊限定:

将T加在目录的权限上,该目录的文件只有root或者拥有者有权利进行删除,其他人一概不允许


7.关于权限的总结

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
  • 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux项目自动化构建工具之make/Makefile演示gcc编译

文章目录 一、背景二、如何使用&#xff1f;三、原理四、关于make的问题五、再次理解/编写makefile依赖关系依赖方法 六、原理讲解项目清理makefile是支持变量的取消执行make后显示命令依赖方法可以多行 一、背景 会不会写makefile&#xff0c;从一个侧面说明了一个人是否具备…

C语言进阶之文件操作

一、什么是文件 磁盘上的文件是文件。 但是在程序设计中&#xff0c;我们一般谈的文件有两种&#xff1a;程序文件、数据文件&#xff08;从文件功能的角度来分类的&#xff09;。 1&#xff09;程序文件 包括源程序文件&#xff08;后缀为.c&#xff09;,目标文件&#xff…

VueFire:一个一流的 Vue 和 Firebase 体验,包括对 Nuxt 的支持,现在已经稳定了

VueFire&#xff0c;一个一流的 Vue 和 Firebase 体验 — 包括对 Nuxt 的支持&#xff0c;现在已经稳定了。 Vue 和 Firebase 现在比以往任何时候都更好了。 构建更好的VueFire 去年&#xff0c;我们宣布与 Eduardo San Martin Morote 合作&#xff0c;构建一个成熟的 Vue 和…

《数字乡村标准化白皮书(2024)》正式发布 智汇云舟参编

近日&#xff0c;全国信标委数字乡村标准研究组2023年度全体会议在北京召开。会议期间&#xff0c;智汇云舟参编的《数字乡村标准化白皮书&#xff08;2024&#xff09;》&#xff08;简称《白皮书》&#xff09;正式发布&#xff01; 发布仪式 白皮书研究背景 作为国家基础制…

交换机ARP学习异常,看网工大佬是如何处理的?

晚上好&#xff0c;我的网工朋友。 在复杂多变的网络环境中&#xff0c;网工就没有不遇到问题的&#xff0c;习惯了&#xff0c;兵来将挡水来土掩。 那ARP异常你遇到过吗&#xff1f;ARP作为网络中的基础协议之一&#xff0c;它的稳定性对整个网络的性能和可靠性至关重要。 …

【MongoDB】跨库跨表查询(python版)

MongoDB跨表跨库查询 1.数据准备&#xff1a;2.跨集合查询3.跨库查询应该怎么做&#xff1f; 讲一个简单的例子&#xff0c;python连接mongodb做跨表跨库查询的正确姿势 1.数据准备&#xff1a; use order_db; db.createCollection("orders"); db.orders.insertMan…

电路分析2

7 等效电路的思想&#xff0c;简化不是目的&#xff0c;这个电路说明一切&#xff01;_哔哩哔哩_bilibili 高中知识&#xff0c;翻笔记 8 什么时候用Y型&#xff1f;看到有有相同数字的时候&#xff0c;就可以考虑用 9 10 输入电阻还有没学完的 ok 11

海外多语言盲盒开发:打破语言障碍,连接全球消费者

随着全球化的加速和互联网的普及&#xff0c;语言障碍成为了影响跨国交流和商业活动的重要因素。为了满足跨国市场的需求&#xff0c;海外多语言盲盒开发成为了一个新兴的领域。本文将探讨海外多语言盲盒开发的意义、现状和未来发展。 一、海外多语言盲盒开发的意义 在全球化…

【C++】运算符重载详解

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读 1. 为什么需要运算符重载 2. 运算符重载概念 3. 运算符重载示例 3.1 运算符重载 3.2 >或<运算符 4. 运算符重…

提前祝大家新年好!来看看社区 2023 都得了哪些奖吧

大噶好&#xff01;转眼马上就是“龙”历新年啦&#xff0c;不知道大家这周的工作热情怎么样呢&#xff1f;小陈的心已经在殷切期盼回家过年了&#xff5e; RTE 开发者社区预祝诸位&#xff1a; 2024 年 &#x1f432;龙年添财气&#xff0c;万事皆胜意&#xff01; 回顾过去…

c语言封装继承详解

模块化编程结构 函数头文件 c语言头文件代码 #ifndef __Object_H_ #define __Object_H_// 继承 struct person {int id;char name[20];int gender;const char* (*getGender)(struct person* s);void (*setGender)(struct person* s, const char* strGender); }; struct teache…

C语言问题汇总

指针 #include <stdio.h>int main(void){int a[4] {1,2,3,4};int *p &a1;int *p1 a1;printf("%#x,%#x",p[-1],*p1);} 以上代码中存在错误。 int *p &a1; 错误1&#xff1a;取a数组的地址&#xff0c;然后1&#xff0c;即指针跳过int [4]大小的字节…

Flink1.14新版KafkaSource和KafkaSink实践使用(自定义反序列化器、Topic选择器、序列化器、分区器)

前言 在官方文档的描述中&#xff0c;API FlinkKafkaConsumer和FlinkKafkaProducer将在后续版本陆续弃用、移除&#xff0c;所以在未来生产中有版本升级的情况下&#xff0c;新API KafkaSource和KafkaSink还是有必要学会使用的。下面介绍下基于新API的一些自定义类以及主程序的…

【JavaEE进阶】 图书管理系统开发日记——伍

文章目录 &#x1f38b;前言&#x1f332;需求分析&#x1f384;约定前后端交互接口&#x1f333;实现服务器代码&#x1f6a9;控制层&#x1f6a9;业务层&#x1f6a9;数据层 &#x1f343;修改前端代码⭕总结 &#x1f38b;前言 这次我们来实现图书管理系统的增加图书模块。…

QT 应用中集成 Sentry

QT 应用中集成 Sentry QT应用中集成 SentrySentry SDK for C/C注册 Sentry 账号QT 应用中集成 Sentry触发 Crash 上报 QT应用中集成 Sentry Sentry 是一个开源的错误监控和日志记录平台&#xff0c;旨在帮助开发团队实时捕获、跟踪和解决软件应用程序中的错误和异常。它提供了…

qml中布局属性讲解

1.行布局&列布局:RowLayout&ColumnLayout RowLayout {id: layoutanchors.fill: parentspacing: 6Rectangle {color: tealLayout.fillWidth: trueLayout.minimumWidth: 50Layout.preferredWidth: 100Layout.maximumWidth: 300Layout.minimumHeight: 150Text {anchors.c…

基于nginx的虚拟主机配置

目录 一.基于不同ip的虚拟主机 二.基于不同端口的虚拟主机 三.基于不同域名的虚拟主机 一.基于不同ip的虚拟主机 1.关闭 SELinux和防火墙 2.在/data目录中创建三个目录&#xff0c;分别为nginx1、nginx2 和nginx3,具体名为: 3.分别在三个目录中创建index.html,并输入内容“…

C++程序在开机自启和定时器执行时遇到的问题和解决方法

遇到的错误如下&#xff1a; Camera is created.load vfvlog.[dll/so] failed for dll[/vfvlog.so] unexistedLoadDbgConfig, LoadFile fail, err:-3, errno: No such file or directoryqt.qpa.xcb: could not connect to displayqt.qpa.plugin: Could not load the Qt platfo…

XSS haozi靶场通关笔记

XSS靶场地址&#xff1a;alert(1) 靶场的要求是输出一个内容为1的弹窗&#xff1b;这个靶场限制了输入位置只能是input code&#xff1b;而且浏览器发送内容时会自动进行url编码&#xff1b;所以重点考察的是代码的分析和基础payload构造&#xff1b;一切完成在当前页面&#…

毫米波雷达在汽车领域的原理、优势和未来趋势

1 毫米波雷达的原理 汽车引入毫米波雷达最初主要是为了实现盲点监测和定距巡航。毫米波实质上是电磁波&#xff0c;其频段位于无线电和可见光、红外线之间&#xff0c;频率范围为10GHz-200GHz。工作原理类似一般雷达&#xff0c;通过发射无线电波并接收回波&#xff0c;利用障…