当前位置: 首页 > news >正文

【Linux】-- Shell的运行原理、Linux当中的权限

目录

Shell的运行原理

Linux权限的概念

su命令

权限

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

chmod指令

chown指令

chgrp指令

sudo命令

文件的常见问题

umask

粘滞位

关于权限的总结


Shell的运行原理

Shell运行原理 —— 外壳程序。

        Linux严格意义上说的是一个操作系统,我们称之为核心(kernel“ ,但我们一般用户,不能直接使用核心(kernel)。 而是通过核心(kernel)的“外壳程序,也就是所谓的shell,来与核心(kernel)沟通。
#问:如何理解?为什么不能直接使用核心(kernel)?
        可以,但是专业性太强,门槛太高,用户直接使用核心(kernel),会过于的麻烦、复杂。所以是可以的,但是是不建议的。

所以系统的设计者,不会让用户直接操作操作系统。
#问:那么我们的如何访问操作系统的呢?那么图形化界面 && 指令操作究竟是什么东西呢?
从技术角度,Shell的最简单定义,命令行解释器(command Interpreter)主要包含:
  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。
        对比:windows的图形化界面(GUI),我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
        帮助理解:也就比如我们去银行取钱,并不是对于存储方式不清楚的我们去做,而是将银行卡与钱交给柜台,让柜台帮助我们去做,这也是一定程度上的解耦合,不需要我们多么的清楚银行内部的配置,内部的运行方式。

Shell运行原理:
  • 创建子进程,让子进程进行命令行解释。
  • 子进程出现任何问题,都不影响父进程Shell。

(用户让Shell(本身就是是一个进程 )去做的事情,可能会导致去执行的进程,出现错误,导致崩溃,所以让子进程进行命令)- 知道就可以了,父子进程学习的时候深论。

        帮助理解:操作系统是银行的机器,Shell是银行职员,用户是办理服务的我们。我们对于机器操作不清楚的我们,于是请了一个银行职员帮助我们,比如我们想取钱,就告诉银行职员,让其帮我们进行取1000元,于是银行职员就去操作机器了,这个时候,机器说该用户余额不足无法取款,于是告诉操作它的银行职员,于是银行职员告诉我们。(这个时候就是操作系统层拒绝我们)

        然后,我们又告诉银行职员我们就是要取1000,这个时候银行职员知道余额不足,就直接拒绝了。(这个时候就是Shell层拒绝我们)这个时候也就变相的保护了机器中的余额数据(Shell变相操作系统中的数据)

外壳程序shell的意义:

  1. 是用户和操作系统交互的中间软件层。
  2. 可以在一定程度,起到一定的保护操作系统的作用。

Linux权限的概念

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

  • 超级用户:可以再linux系统下做任何事情,不受限制。
  • 普通用户:在linux下做有限的事情。

        所以:root <-切换-> 普通用户,潜台词就是切换我们当前的权限。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

su命令

命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 suroot(root可以省略),此时系统会提示输入root用户的口令。
由普通用户切换到超级用户root:su -

切换到超级用户root后切回刚刚的普通用户:Ctrl + d / logout

由普通用户切换到普通用户:su 用户名

由超级用户root切换到普通用户:su 用户名 

        root是超级用户,无需输入普通用户密码。

权限

#问:是什么?

权限针对人的, 事物的基本属性决定权限相关的概念Linux下一切皆文件—> 文件权限 ——> 一件事是否允许被用户"做"。则:权限的核心 = 人 + 事物属性。
1. 文件访问者的分类(人)
  • 文件和文件目录的所有者:u---User(中国平民 法律问题)
  • 文件和文件目录的所有者所在的组的用户:g---Group(不多说)
  • 其它用户:o---Others (外国人)
2. 文件类型和访问权限(事物属性)

用户:可以认为是一种角色或者身份:root && 普通用户(它们可以各自扮演下面的三个)

  • 拥有者:文件属于谁。
  • 所属组:文件属于哪一个组。
  • other:不属于上面两种的任何一个,就是other。

root、普通用户是具体的用户,上面是它们所扮演的角色。

#问:为什么会有所属组这个概念?

        在某个公司当中有两个小组团队(A组、B组)在同一个Linux服务器上进行着同一款项目的开发(赛马模式),而你就是A组当中的一员。

         有一天,A组的领导来找你,想看看你写的代码。如果这个时候用户只有:拥有者和other,没有所属组。这个时候想让A组领导看见代码,就需要将other的权限打开。但是这个时候,作为B组的李四,也是other,就会导致李四也有权限。所以,如果只有拥有者和other,就会导致组内的成员无法看见代码,打开other权限,也就回导致所有人都会有权限。这就是有问题的,所以Linux映入了所属组。这个时候想让同组的人看见代码,只需将和我们属于同一组人的权限打开就可以了。

文件类型:

        Linux下,不以文件后缀来区分文件类型(并不代表可以不使用,在系统层虽然没有意义,但是可以给自己看)。注意:gcc、g++等是Linux上的软件,它们是认文件后缀的!

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

基本权限:

  1. 读(r/4)Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
  2. 写(w/2)Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。
  3. 执行(x/1)execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
  4. “—”:表示不具有该项权限。

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

  • 字符表示方法
Linux表示说明Linux表示说明
r - -只读- w -仅可写
- - x仅可执行r w -可读可写
- w x可写和可执行r - x可读可执行
r w x可读可写可执行- - -无权限

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

于是更改权限的操作就有两类:

  1. 改用户
  2. 改属性

chmod指令

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
        R -> 递归修改目录文件的权限
        说明:只有文件的拥有者和root才可以改变文件的权限
chmo命令权限的格式
1.  用户表示符+/-=权限字符  
  • +向权限范围增加权限代号所表示的权限。
  • -向权限范围取消权限代号所表示的权限。
  • =向权限范围赋予权限代号所表示的权限。
  • 用户符号:  
    • u拥有者
    • g拥有者同组用
    • o其它用户
    • a所有用户

举例:

 若要同时设置不同类用户的访问权限,则需用逗号隔开。

2.  八进制

        权限只有:有、没有,两个状态。这也就是位图的原理,二进制表示,为0即否,为1即是。于是便有了八进制的表现。

  • 8进制数值表示方法

 #问:如果没有权限是什么样子?

        这个时候就是,根本原因:我们虽然是这个文件的所属组,但是,我们依旧不具备任何权限,因为拥有者的权限被我们清掉了。即使是我们的文件,但是没有权限就是不行。

#问:root是超级管理员,他的权限受不受约束?

        这个时候,文件的拥有者和所属组都不是root,是不是root就是other用户了?此时是不是什么权限都没有了?但是,可以发现root用户是可以进行任何操作的。

         并且还能更改该文件的权限。

Note:

        root用户的权限十分的大!几乎是不受权限的约束的!权限就是用来限制普通用户。所以用户的密码十分重要。

chown指令

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

        可以发现直接使用这个指令,报错:这个操作是不被允许的。因为我们给别人东西是需要得到别人的同意的。

如何让对方同意?

        很简单,强迫对方同意!直接换成root进行操作。

chgrp指令

功能修改文件或目录的所属组。
格式chgrp [参数] 用户组名 文件名。
常用选项-R 递归修改文件或目录的所属组。
实例:

Note:

        这个时候就使用chown、chgrp指令,改变了用户,这个时候普通用户qcr就变为了other。

sudo命令

        除了用root超级用户压着对方强行移动文件还可以使用sudo

Note:

        如果用户想执行sudo,提升权限,需要该用户在信任列表里面,才可以执行sudo,添加用户到信任列表是需要root身份的!

        首先你得先切换到超级用户,只有超级用户才有权力将普通用户添加到信任列表。切换到超级用户后,我们使用vim打开文件sudoers进行添加。

        注意:普通用户打开文件sudoers是空白什么都看不到。
在这里插入图片描述
        添加完毕后,该用户就可以使用sudo指令,也就是拥有提升当前指令权限的能力了。
在这里插入图片描述

文件的常见问题

1. 目录权限。

Note:

        权限对于用户,如果是拥有者和所属组,只看拥有者权限,与所属组没有关系。不是拥有者是所属组,那只看所属组权限。因为权限只会认证一次。

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

umask

Linux默认:

  • 一个目录被创建,起始权限是:777
  • 一个普通文件被创建,起始权限是:666

        但是我们会发现,我们创建的目录、文件一个是775、664.。并不是前面所提的起始权限。

#问:为何我们创建一个目录或者文件,默认权限是你所看到的样子?

        因为有umask的存在。

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

        只需要关心umask的后三位。但第 1 个数代表的是文件所具有的特殊权限(SetUID、SetGID、Sticky BIT)此文不涉及讲解

Note:

        凡是在umask中出现的权限,都不应该在最终权限中出现。

        我们实际创建出来的文件和目录的权限值并不是开始的起始权限,是还需要进行进一步umask换算才能得出 —— 掩码的的后三位八进制换算为二进制,然后对其进行按位取反。最终权限 = 起始权限 & (~umask)。

实例

粘滞位

#问:当一个普通文件,不具备任何权限,我们是否能够删除它?

        可以发现,我们可以利用读写权限阻挡别人阅读,但是我们没有办法阻挡别人删除。因为一个文件被删除并不是一个文件本身的属性,而是,文件所在的目录中用户是否具有写权限。所以也不用担心别人将我们的文件删除,因为该文件所在的目录是属于我们的。

结论:

  1. 删除一个文件,并不是这个文件说的算,而是这个文件所处的目录说的算。
  2. 该文件也处于,自己的目录下,所以也不用担心别人删除。(前提该目录就只属于你自己)

        所以需要担心的是,未来我们与某一个人一起在一个目录下(特定路径下),共同在一个目录里维护一堆文件的时候,这个时候我们可以不给别人看的权限,但是我们架不住别人来删除。

于是在一个场景下:

大家所有的用户都在一个共同的路径下,对该目录具有读写执行权限。


有一个在根目录下的目录就是这样的:tmp

        比如:我们创建了一个拥有者和所属组都是root的目录后,在该目录中使用两个普通用户创建普通文件。

        这个时候由于test_dirw目录的拥有者和所属组即使都是root,但是放开了对于other的写权限,所以一个普通用户是可以将另一个普通用户的文件删除的。

        有个最直接的方法,就是将test_dirw目录的other的写权限关闭。

        这个时候,倒是解决了别人删我们的文件的问题,但是对于我们来说,我们也没有了删除的权限了,毕竟在这个拥有者与所属组都是root的目录下,作为普通用户的我们来说,我们就是other,other的写权限被我们关闭了。 

        因为怕别人删,反而导致了自己没法删除。

总结:

  1. 当多个用户共享一个目录,需要在该目录下,进行读写,创建删除文件。
  2. 但是自己只能删除自己的,而不能删除别人的。(w:可以互相删除)

        所以便有了新的一个属性:粘滞位

        说白了就是:既能保证用户们在一个目录下,你创建你的、我创建我的,你读写你的。又能保证其他人,无法删除你的文件,你还能正常使用。

        这个时候 是 的特殊情况,这个时候它的表现形式就是。

当一个目录被设置为"粘滞位" ( 用chmod + t ) ,则该目录下的文件只能由:

  1. 超级管理员删除。
  2. 该目录的所有者删除。
  3. 该文件的所有者删除。

Note:

        粘滞位只能给目录设置,因为一个文件能否被删除本身就是目录的权限。

#问:会不会出现别的用户将粘滞位取消后,跑过来将我们的文件删除吗?

        不可以,因为对于这种共享目录,一般都是拥有者和所属组都是root。而粘滞位只能够谁加的,谁来取。所以也不用担心别人讲目录的粘滞位取消掉,因为要不就是root的目录,要么就是我们的目录。

        (root不用想了,它在服务器的机器上无所不能,它当然可以取消你设置的粘滞位)不是完全的无所不能,比如他删不掉一个正在被访问的文件。

关于权限的总结

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

相关文章:

【Linux】-- Shell的运行原理、Linux当中的权限

目录 Shell的运行原理 Linux权限的概念 su命令 权限 文件访问权限的相关设置方法 chmod指令 chown指令 chgrp指令 sudo命令 文件的常见问题 umask 粘滞位 关于权限的总结 Shell的运行原理 Shell运行原理 —— 外壳程序。 Linux严格意义上说的是一个操作系统&…...

MOS管选型参数:VGS(th)

MOS管选型参数&#xff1a;VGS(th) VGS&#xff08;th&#xff09;&#xff1a;开启电压&#xff08;阀值电压&#xff09;。当外加栅极控制电压 VGS 超过 VGS&#xff08;th&#xff09; 时&#xff0c;漏区和源区的表面反型层形成了连接的沟道。应用中&#xff0c;常将漏极短…...

二.线性表之顺序表

文章目录前言一.顺序表的概念及结构二.顺序表的接口实现1.顺序表的动态存储2.顺序表的初始化3.顺序表尾插#封装&#xff1a;扩容函数4.顺序表尾删5.顺序表头插6.顺序表头删7.顺序表查找8.顺序表在pos位置插入x9.顺序表删除pos位置的值10.顺序表销毁11.顺序表打印三.源1.Seqlist…...

ElasticSearch - SpringBoot整合ElasticSearch实现文档的增删改

文章目录1. ElasticSearch和kibana的安装和配置2. SpringBoot 项目环境搭建3. 创建索引4. 索引文档5. 更新文档6. 删除文档https://www.elastic.co/guide/en/elasticsearch/reference/current/search-your-data.htmlhttps://www.elastic.co/guide/cn/elasticsearch/guide/curre…...

JavaScript 库

文章目录JavaScript 库JavaScript 框架&#xff08;库&#xff09;jQueryPrototypeMooTools其他框架CDN -内容分发网络引用 jQuery使用框架JavaScript 库 JavaScript 库 - jQuery、Prototype、MooTools。 JavaScript 框架&#xff08;库&#xff09; JavaScript 高级程序设计…...

云解析DNS为什么要配置默认线路?

传统解析技术不会判断访客IP&#xff0c;而是会随机选择一个IP返回给访问者&#xff0c;这样就有可能造成移动用户访问电信服务器IP&#xff0c;北京用户访问深圳服务器IP这种跨域跨网访问的情况&#xff0c;产生非常大的延迟&#xff0c;带来很不好的访问体验。 而云解析DNS会…...

Linux命令之awk

awk是一个有强大的文本格式化能力的linux命令&#xff0c;早期是在Unix上实现的&#xff0c;linux后来也可以使用了&#xff0c;我们在Linux上使用的awk是gawk&#xff08;GNU awk的意思&#xff09; 语法 awk [option] 模式{动作} file option表示awk的可选参数&#xff0c;可…...

实战-缓存数据一致+binlog初始+cannel监听+数据迁移,数据一致性架构设计

前言 一. 解决缓存不命中&#xff08;高并发操作击穿打挂DB的风险&#xff09; 当并发量打的时候&#xff0c;当我们的缓存过期时&#xff0c;就算到数据库的比例偏小的时候&#xff0c;我们的请求时比较大的。那也会存在数据库崩掉的情况。解决方案想法如下&#xff08;总体…...

nginx配置中proxy_pass反向代理502的bug

记录一个坑人的bug&#xff0c; 我今天在一台新的liunx上运行nginx来进行反向代理时候&#xff0c;发现怎么测都是502 我把配置全部删了从头开始配置&#xff0c;发现80端口正常&#xff0c;80端口index.html正常&#xff0c;反向代理转向http://127.0.0.1/也正常&#xff0c;…...

JavaScript 两种方案打开文件对话框

JavaScript 两种方案打开文件对话框 文章目录JavaScript 两种方案打开文件对话框一、文件对话框二、传统方案表单元素&#x1f308;三、文件系统访问API&#x1f4a6;四、更进一步使用六、代码仓库&#x1f310;七、参考资料&#x1f498;七、推荐博文&#x1f357;一、文件对话…...

Pycharm远程服务器常见问题

2023年02月23日 问题描述&#xff1a;Pycharm远程服务器跑代码时&#xff0c;不小心把Pycharm关掉了&#xff0c;但服务器代码还在运行&#xff1f; 解决办法&#xff1a;kill进程 先用watch -n 0.5 nvidia_smi查看进程&#xff0c;然后kill -9 <进程> 1、nvidia-smi…...

内容团队如何快速出稿

对于内容团队而言&#xff0c;每个内容选题就相当于一个小项目&#xff0c;它们并非简单的线性工作流&#xff0c;相反其复杂程度不亚于一个小型工厂。一个内容选题会涉及内容形式&#xff0c;选题类型等多个变量&#xff0c;这些变量因素组合起来就是十几种不同类型的工作流。…...

es-08索引的批量操作

索引的批量操作 批量查询和批量增删改 批量查询 GET /_mget#批量查询 GET product/_search GET /_mget {"docs": [{"_index": "product","_id": 2},{"_index": "product","_id": 3}] }GET product/_mge…...

诈金花的概率

游戏使用一副除去大小王的扑克牌&#xff0c;共4个花色52张牌。 1、豹子&#xff08;AAA最大&#xff0c;222最小&#xff09;。2、同花顺&#xff08;AKQ最大&#xff0c;A23最小&#xff09;。3、同花&#xff08;AKQ最大&#xff0c;352最小&#xff09;。4、顺子&#xff…...

ESP32设备驱动-MLX90393磁场传感器驱动

MLX90393磁场传感器驱动 文章目录 MLX90393磁场传感器驱动1、MLX90393介绍2、硬件准备3、软件准备4、驱动实现1、MLX90393介绍 MLX90393 磁场传感器可以在运行时重新编程为不同的模式和不同的设置。 该传感器使用 Melexis 专有的 Triaxis 技术提供与沿 XYZ 轴感应的磁通密度成…...

Java面试题-Spring框架

Spring框架 1. BeanFactory和ApplicationContext有何区别 BeanFactory是Spring最底层的接口&#xff0c;是IoC的核心&#xff0c;定义IoC的基本功能。 ​ BeanFactory具有&#xff1a;延迟实例化的特性。在启动的时候&#xff0c;不会实例化Bean&#xff0c;只有有需要从容器…...

【计算机物理模拟】-力矩、转动惯量和角速度之间的关系

力矩和角速度之间的关系可以通过牛顿第二定律和角动量定理来描述。 牛顿第二定律表明&#xff0c;物体的加速度与作用在物体上的合力成正比&#xff0c;加速度的方向与合力的方向相同。而对于旋转运动的物体&#xff0c;其加速度可以表示为半径 rrr 乘以角加速度 α\alphaα&a…...

async和await用法理解和快速上手 , 同步任务和异步任务顺序安排和轻松理解 , js代码执行顺序表面知道

学习关键语句 : async , await 用法 await 怎么使用 同步任务和异步任务 微任务和宏任务 js中代码执行顺序 写在前面 虽然说 async 和 await 是 Promise 的语法糖 , 但是用惯了Promise 的人(我) , 还真不能超快速使用上这个语法糖 , 所以赶紧写一篇文章出来让各位了解了解这个…...

Linux下java服务占用cpu过高如何处理

Linux下java服务占用cpu过高如何处理 top命令查看进程信息 top按下shiftp,按cpu使用率排行,可见进程1932占用最高,并且是一个java服务 使用jps命令确认java服务 [rootVM-16-16-centos ~]# jps 1011 Jps 9462 yuan_back-0.0.1-SNAPSHOT.jar 1932 spigot-1.18.jar查找异常进程中…...

ros下用kinectv2运行orbslam2

目录 前提 创建工作空间 orbslam2源码配置、测试&#xff1a; 配置usb_cam ROS功能包 配置kinect 前提 vim 、 cmake 、 git 、 gcc 、 g 这些一般都装了 主要是Pangolin 、 OpenCV 、 Eigen的安装 18.04建议Pangolin0.5 创建工作空间 我们在主目录下创建一个catkin_…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践

前言&#xff1a;本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中&#xff0c;跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南&#xff0c;你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案&#xff0c;并结合内网…...

【实施指南】Android客户端HTTPS双向认证实施指南

&#x1f510; 一、所需准备材料 证书文件&#xff08;6类核心文件&#xff09; 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...