【Linux】第五站:Linux权限

文章目录

  • 一、shell命令以及运行原理
  • 二、Linux下用户的分类
    • 1.root用户和普通用户的切换
    • 2.对一条指令的提权
  • 三、什么叫做权限
    • 1.权限
    • 2.文件的属性
    • 3.文件类型
    • 4.权限属性
  • 四、更改权限
    • 1. chmod 更改文件的属性
    • 2. chown 更改拥有者
    • 3. chgrp更改所属组
    • 4.chown一次性更改拥有者和所属组
    • 5. 权限认证的细节
  • 五、起始权限问题
  • 六、目录文件的读写执行权限
  • 七、粘滞位

一、shell命令以及运行原理

关于linux的定义:我们一般习惯上称Linux上的各种应用,命令行解释器,包括Linux内核都称作Linux,也就是宏观上的linux

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

我们可以用这样一个图来简单的描述

image-20231027141006466

如下所示,当我们进入Xshell的时候,里面的每一个的意思是这样的

image-20231027133057191

而这四部分合起来我们称为bash命令行

输入指令的过程,本质就是在输入字符换

指令的本质就是就是编译好的程序和脚本,一定会在系统的特定目录下存放

我们所有的指令,最终都要在OS内部运行,但是OS使用难度比较高,我们用户不能直接和OS打交道。

所以有了图形化界面和命令行解释器

而前面所说的bash就是一种命令行解释器,命令行解释器就是shell

image-20231027134317767

我们可以用一个故事来理解

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

所以shell命令行解释器的作用如下

  • 将使用者的命令翻译给核心(kernel)处理。

  • 同时,将核心的处理结果翻译给使用者。

命令行解释器存在的意义就是

  1. 进行命令行解释
  2. 保护OS,对于用户的非法请求,直接拦截

关于这个命令行解释器

  • 在linux中,就是命令行形式的,如bash,sh,shell
  • 在windows中,一般就是图形化界面

shell是所有命令行解释器的统称,而bash,sh这些就是具体的命令行解释器

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

shell对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

二、Linux下用户的分类

1.root用户和普通用户的切换

linux中用户一般分为两类

  • root:超级用户(基本不受权限的约束)

  • 普通用户:普通用户是受权限的约束的

  • 超级用户:可以再linux系统下做任何事情,不受限制

普通用户:在linux下做有限的事情。

超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

首先是这两个用户是如何切换的?

比如我们当前是一个普通用户

我们可以使用su指令,然后我们输入root的密码即可

image-20231027175100138

这样切换以后,我们会发现,我们依旧处于原来的路径中,但是用户已经更改为了root账号了

image-20231027175254559

现在当我们想要退出来的时候,我们可以直接使用exit或者CTRL + D快捷键,这样我们就可以退出root用户了

image-20231027175407742

除了直接使用su,我们还可以加上-,也就是使用 su -指令

不过我们可以注意到,当我们输入密码以后,它是一种以登录的方式进入进去的,所以会显示登录的一些信息,并且它的登录后当前的目录直接切换为家目录

image-20231027180133165

而像su就像是一个直接的身份转变。直接将一个普通用户变成root,但并不是以重新登录的身份变化的,而是把一个人硬变成了root

同样的,对于su -以后的root,我们直接退出的话,会显示logout

image-20231027180643313

然后我们的目录切换回来原来的目录

如果我们当前已经是root用户了,但是我们想要登录一个普通用户,那么我们也可以su加上指定用户名即可,这里不需要密码。当我们想退出的时候直接exit或者CTRL+D即可

image-20231027181441912

以上是root和普通用户之间的切换

下面是普通用户和普通用户之间的切换

我们可以直接su指定的普通用户即可,不过这里就需要输入普通用户的密码了

image-20231027181613017

2.对一条指令的提权

当我们目前是普通用户的时候,我们知道,我们是不可以安装软件等操作的

因为安装软件其实就是将某些文件拷贝到系统的指定目录,而普通用户是没有权限进行拷贝的

所以我们可以使用sudo指令进行提权

sudo command

sudo后面加上你需要的操作,然后输入你的密码即可

不过在这里我们可能会觉得有些问题?那这样的话sudo只需要加上我当前账号的密码就可以了,那岂不是人人都是root,即便不知道root密码的情况下?

事实上却是是这样的

但是我们要注意:

我们当前adduser新建出来的用户,没有办法执行sudo,因为系统不信任我们,除非未来将普通用户,添加到系统的信任白名单里面

如下图所示,就是sudo无法提权的例子

image-20231027182959564

三、什么叫做权限

1.权限

权限的最通俗的解释就是一件事情是否允许被我们做

  1. 权限认证的是身份(权限和“人”有关,这个人是有身份/角色的)

  2. 权限也和事物的“属性”有关(毕竟我们不可以将硬盘像面包一样啃一口)

这里的属性,我们指的就是文件属性。

文件属性有三种:可读可写可执行

2.文件的属性

我们可以先创建一个目录和一个普通文件,然后使用ll命令显示如下

image-20231027191254107

我们可以看到有很多列,最后一列是文件名,然后紧接着的三列是时间。这些很容易看出来

可是前面五列又代表了什么呢?

3.文件类型

首先是第一列我们进行分析一下

第一列的第一个字符是代表着文件的类型

文件类型:Linux系统中文件名后缀没有直接的意义(当然不代表它不用)

也就是说,Linux系统不以文件后缀作为文件类型,而是以这个第一个字符代表文件类型

下面是第一个字符所代表的文件种类

  • - :普通文件

  • d : 目录文件

  • b : 块设备文件

  • c :字符设备文件

  • p : 管道文件

如下所示

我们可以看到,对于empty,它的第一个字符是d,所以它是一个目录文件,对于test.c,它的第一个字符是-,所以它是一个普通文件

image-20231027191918251

其实一般而言,我们用的最多的就普通文件和目录这两种

其他的都是很少遇到的

b是块设备文件,其实就是磁盘文件,我们可以在这里看到,下面的这个文件就是b开头,也就是块设备文件

image-20231027193928895

c是字符设备文件,通常有键盘、显示器文件等,如下所示的都是字符设备文件

image-20231027194115876

p是管道文件,一般用于通信

如下所示,本来应该打印在左边的,但是却打印到右边去了

image-20231027194646579

我们在上面说过Linux系统不以文件名后缀区分类型

所以我们可以去创建一个.c程序,然后编译后生成一个a.out文件,我们可以对这个文件随意的进行重命名。我们发现是可以运行的。这验证了我们前面所说的

image-20231027195338815

可是当我们如果我们将这个.c程序的后缀改为了txt以后,gcc无法编译通过了

image-20231027195446784

其实这里我们说的linux系统不以后缀辨认类型,但是gcc是一款编译器,软件,linux不认,但是gcc这个软件认

所以linux不认,但是不代表linux系统上运行的其他软件不需要认后缀

所以说:Linux中如何看待后缀,主要看用户需求

4.权限属性

如下所示,第一列的后九个字符代表的是权限的属性

image-20231027195931058

其中

  • r : 可读
  • w : 可写
  • x : 可执行
  • - : 对应位置没有权限

这些权限是跟人有关系的

而我们将这些人划分为三种角色、权限身份

  1. 拥有者
  2. 所属组
  3. 其他人

那么现在问题来了,这三种角色权限身份和两种类型的用户有什么区别呢?

其实就是具体的用户可以有这些身份

image-20231027202741791

即人+角色身份

对于我们下面的信息中,第三列就是拥有者

image-20231027202944901

第四列就是所属组

image-20231027203021271

而对于其他人,系统这直接使用排除法就可以了。不是拥有者也不是所属组那就是其他人

第五列是文件的大小

对于第二列,我们暂时先不讨论

所以现在我们在回过头来看第一列的后九个字符

他们三个三个为一组,分别对应拥有者,所属组和其他人的权限。

image-20231027204339543

而且对于每一个权限里面,三个的位置分别依次代表,是否读,是否写,是否可执行

  1. 位置是什么含义是确定的

  2. 每个位置只有是或否,具有指定的权限

image-20231027204901910

所以上面的test.c文件中

  • 对于拥有者的权限是可读可写不可执行

  • 对于所属组的权限是可读可写不可执行

  • 对于其他人的权限是可读不可写不可执行

我们接下来使用三个用户来测试

image-20231027210204320

如下所示,在拥有者的账户中,我们可以对其进行读也可进行写

image-20231027210439981

当我们使用其他人的时候,和我们前面所想得一样,不可以写但可以读

image-20231027210905382

但是当我们使用root的时候,虽然它是一个其他人,但是它居然可以读可以写

image-20231027211313269

这说明root其实是不受权限约束的

我们继续做一个测试,我们先将这个test.txt的权限给全关了

image-20231027211601179

我们可以发现,对于我们这个拥有者,没有了任何权限以后,我们无法读了也无法写了

image-20231027211710129

对于其他人而言也是一样,没有了权限就无法读写了

image-20231027211831760

但是我们继续看root,它这个老六居然啥都可以干

image-20231027212002662

以上的例子再次证明了root不受权限的约束

当我们这个拥有者对它自己赋予了读权限的功能的时候,它就可以进行读取了

image-20231027212249326

四、更改权限

一般而言,更改权限的人只有两种,一个是拥有者,一个是root

1. chmod 更改文件的属性

chmod指令可以进行权限的修改

比如下面的例子

如果对拥有者修改权限那么就是u

image-20231027212707193

如果我们想要去掉某个权限,那么就是减号即可

image-20231027212823085

我们也可以对所属组修改权限,用g来表示

image-20231027213933774

如果我们相对其他人添加权限,用o来表示

image-20231027214019789

我们也可以对多个身份多个权限同时操作

我们可以用逗号隔开分开操作

image-20231027214158676

也可以使用a,a代表all,即对所有人去除掉某个权限

image-20231027214314112

下面是删除掉全部人的全部权限

image-20231027214430889

除了以上的指定修改,还有一种是利用比特位一一对应的方式来进行修改

image-20231027214743084

所以我们可以用一个八进制数来代表权限

image-20231027214849520

image-20231027214927837

image-20231027214944851

2. chown 更改拥有者

我们可以使用chown更改拥有者

但是当我们直接这样使用的时候,我们发现是不可以的

image-20231028140023253

这里其实是因为jby这个拥有者无法直接将这个文件的拥有者交给qyt,因为还需要考虑qyt是否想要。

所以在这里我们需要使用sudo来进行指令的提权,不过这种方式目前我们的linux系统还是无法可以进行的。因为系统不信任我们。所以我们后序在讨论如何进行提权

image-20231028140432476

所以我们可以先使用root用户进行提权

image-20231028140536798

现在拥有者变为了qyt,我们还让jby去修改文件属性的话,那么是不可以的

image-20231028140703092

所以我们可以先让root修改一下文件的属性

image-20231028140811879

然后我们在让jby去读写文件发现是不可以的

image-20231028140843591

不过虽然jby不是拥有者,但他还是所属组,所以我们可以给他加上所属组的权限

image-20231028141018358

然后它就可以进行读写了

image-20231028141109712

3. chgrp更改所属组

既然拥有者都可以更改,那么所属组当然也是可以更改的了

不过还是一样的, 我们无法直接使用jby去更改所属组吗,即便我们本身就是所属组,但我们仍需要使用root去更改,或者如果是拥有者也是可以更改的

image-20231028142520796

如下是拥有者进行的更改

image-20231028142637088

如下是root进行的更改

image-20231028142718939

4.chown一次性更改拥有者和所属组

如下所示,在使用chown的时候,我们在中间加上冒号,然后就可以一次性连续更改拥有者和所属组了

image-20231028142946883

5. 权限认证的细节

在如下的文件中

jby既是拥有者又是所属组,但是我们给它的权限是拥有者只可以读,但是所属组可以读写。

image-20231028143729890

我们会发现,我们正在实际的写入的时候是无法进行写入的

这是因为在进行身份认证的时候,只能选择一个身份进行认证,即我已经是拥有者了,就不会在考虑所属组的权限了。所以无法修改

反而是我们将上面的拥有者给换为了qyt以后,反而是可以进行修改了

image-20231028144541797

五、起始权限问题

当我们创建了一个新的文件的时候,我们发现它的起始权限是如下的

image-20231028144731695

如果我们又创建了两个目录,它的起始权限是这样的

image-20231028144830437

  • 那么为什么我们创建文件的默认权限是是我们所看到的样子?

  • 为什么普通文件是664?

  • 为什么目录文件是775?

其实上面的都只是我们看到的样子

实际上在linux系统中,默认给普通文件的起始权限其实是666,给目录文件的起始权限其实是777

那么为什么默认给的起始权限和我们所看到的不一样么?

这是因为在linux中有一个权限掩码的东西,我们可以使用umask去查看

image-20231028150332718

这个0002就是一个八进制数,第一个0代表它是一个八进制数,后面的三位才是关键的。后面的三个八进制数刚好可以形成9个比特位

权限掩码:凡是在umask中出现的权限,不会在最终的文件权限中出现

所以最终,才有了本应该是666和777,但是最终确变为了664和775

110 110 110    ---普通文件的起始权限
000 000 010    ---权限掩码umask
110 110 100    ---普通文件的最终权限
111 111 111    ---目录文件的起始权限
000 000 010    ---权限掩码umask
111 111 101    ---目录文件的最终权限

它的运算规则类似于如下

最终权限 = 起始权限 & (~umask)

如果我们想要修改umask,我们直接它在后面添加八进制数字即可

image-20231028151524692

六、目录文件的读写执行权限

如下所示,当我们创建了两个文件以后

image-20231028154058777

对于test.c文件它的读写执行,我们都很好理解,可是对于dir这个目录文件,它的读写执行就有点奇怪了,那么究竟都代表什么意思呢?

如果我们对这个目录文件的读权限给去掉了,那么我们可以看到,我们仍然可以进去这个文件,并且在这个目录文件中创建文件,但是我们可以使用ls去读取里面的东西

image-20231028154442917

所以读权限并不影响能否进入,但是影响我们可不可以看

接下来我们继续将写权限给关掉,那么我们可以看到,我们仍然可以进去这个文件,但是我们不可以读也不可写了

image-20231028154642266

所以写权限并不影响能否进入,但是影响我们可不可以写

如果我们继续将这个目录文件的x给去除掉,我们会发现,我们无法进入这个文件了,但是我们可以去查看这个文件的内容

image-20231028155448493

所以目录文件的

r : 是否允许我们查看指定目录下的文件内容

w : 是否允许我们在当前目录下进行创建、更改、删除

x : 是否允许用户进入对应的目录

七、粘滞位

我们可以看一下我们的家目录里面的信息

可以看到,每一个用户它的拥有者和所属组都是它自己,并且只有拥有者有权限,其它的都没有权限

image-20231028160707290

所以普通用户自己的家目录权限是700,我在我的家目录创建的文件,别人都看不到

但是有时候,我们多个用户想要进行文件数据的共享

所以就说明了我们所建立的共享文件,不能在任何一个人的家目录下

所以我们可以使用root账号在根目录下创建一个共享文件shared

image-20231028161622526

然后我们将这个文件的权限全部公开

image-20231028161721058

然后我们可以这样做,就可以共享一个文件了

image-20231028162936436

但是这里出现了一个问题,那就是如果jby不让qyt看这个文件的内容的话,把它的权限给关了,那么如果qyt一气之下直接将文件给删了那就糟糕了。

image-20231028163236198

这就有点不合理了

而我们知道一个文件能否被删除,并不由这个文件所决定,而是由这个文件所处的目录所决定

所以为了避免被qyt删除我们的文件,我们可以去关掉这个shared目录的写权限

可是这样做的话如果我们去掉了共享目录的w权限,我们也同时无法创建文件了,那么谈何共享呢???

为了使得让其他人无法删除文件,所以我们可以使用一个新的位,也即是粘滞位

即直接o+t就可以了

image-20231028164328536

这时候,如果jby让qyt不高兴了,这下qyt想要删文件也删不了了

image-20231028164845861

当然如果是我们文件的创建者要删除的话还是可以的

image-20231028164944721

所以粘滞位:给目录设置,一般是共享目录,大家可以在目录进行各自文件的增删查改,但是只允许文件的拥有者和root去删除文件,其他人一概不允许,t就是一种特殊的x权限

也就是说root用户是可以无视前面的一切规则的。在比如root自己的文件,即便我将我自己的权限都给关了,我照样进的去,改的了,看的了

image-20231028165632372

不过如果每次我们想要共享文件的话,这样是不是有点太费劲了呢?

其实在linux中,根目录下就有一个文件tmp,他就是带了粘滞位的

image-20231028170118432

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

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

相关文章

我的创作纪念日 - 2048

机缘 昨天刚刚收到 C 站的 1024 勋章: 今天爬山途中就又收到了 CSDN 的创作 2048 天纪念推送: 虽然 1024、2048 这些数字对普通人来说可能没有意义,但对于程序员来说却有不一样的情结。感谢 C 站这波细心的操作,替程序员的我们记…

接口返回响应,统一封装(ResponseBodyAdvice + Result)(SpringBoot)

需求 接口的返回响应&#xff0c;封装成统一的数据格式&#xff0c;再返回给前端。 依赖 对于SpringBoot项目&#xff0c;接口层基于 SpringWeb&#xff0c;也就是 SpringMVC。 <dependency><groupId>org.springframework.boot</groupId><artifactId&g…

Camtasia mac版怎么加字幕 Camtasia mac版怎么打马赛克

在视频制作过程中&#xff0c;字幕和马赛克是两项非常常用的编辑功能&#xff0c;添加字幕可以提高观众的观看体验&#xff0c;添加马赛克可以保护视频创作者不想公开的画面内容。Camtasia作为一款知名的视频制作软件&#xff0c;在具备基本的录制和视频编辑功能的同时&#xf…

Oracle (7)Online Redo Log Files

目录 一、Oracle Online Redo Log Files及其相关内容介绍 1、Online Redo Log Files简介 2、Online Redo Log Files特点 3、Online Redo Log Files文件组 4、多路复用文件 5、联机重做日志文件工作方式 6、LGWR什么时候写重做 7、LS和LSN 8、删除Redo文件成员 9、删除…

Linux对网络通信的实现

一、NIO为什么很少注册OP_WRITE事件 1、OP_WRITE触发条件&#xff1a;当操作系统写缓冲区有空闲时就绪。一般情况下写缓冲区都有空闲空间&#xff0c;小块数据直接写入即可&#xff0c;没必要注册该操作类型&#xff0c;否则该条件不断就绪浪费cpu&#xff1b;但如果是写密集型…

虚拟技术和容器技术的对比

1.概念 容器技术是一种内核轻量级的操作系统层虚拟化技术&#xff0c;能隔离进程和资源。 虚拟机&#xff08;VM&#xff09;技术是一种创建于物理硬件系统&#xff0c;充当虚拟计算机系统的虚拟环境&#xff0c;该虚拟机可以独 立运行在一个完全隔离的环境中&#xff0c;向本…

华为NAT配置实例(含dhcp、ospf配置)

一、网络拓朴如下&#xff1a; 二、要求&#xff1a;PC1 能访问到Server1 三、思路&#xff1a; R2配置DHCP&#xff0c;R2和R1配OSPF&#xff0c;R1出NAT 四、主要配置&#xff1a; R2的DHCP和OSPF&#xff1a; ip pool 1gateway-list 10.1.1.1 network 10.1.1.0 mask 25…

Android数据对象序列化原理与应用

序列化与反序列化 序列化是将对象转换为可以存储或传输的格式的过程。在计算机科学中&#xff0c;对象通常是指内存中的数据结构&#xff0c;如数组、列表、字典等。通过序列化&#xff0c;可以将这些对象转换为字节流或文本格式&#xff0c;以便在不同的系统之间进行传输或存…

设计模式【Iterator 模式】

Iterator 模式 1.什么是 Iterator 模式 Iterator 模式就是按照顺序遍历数据集合。 2.示例程序 1.Aggregate 接口 Aggregate 接口是要遍历的集合的接口&#xff0c;声明方法 iterator &#xff0c;实现了该接口的类可以通过 iterator 方法遍历数据集合的元素。 public int…

pycharm运行R语言脚本(win10环境下安装)

文章目录 简介1. pycharm安装插件2. 安装R语言解释器2.1下载安装包2.2具体安装过程 3.编辑环境变量4 检验是否安装成功&#xff1a;5.安装需要的library6.pycharm中配置安装好的R语言解释器 简介 pycharm 安装 R language for Intellij R language for Intellij 是一个插件&am…

Java集合类--List集合,Set集合,Map集合

集合可以看作一个容器&#xff0c;Java中提供了不同的集合类&#xff0c;这些类具有不同的存储对象的方式&#xff0c;同时提供了相应的方法&#xff0c;以便用户对集合进行遍历、添加、删除、查找指定的对象。 1.集合类概述&#xff1a; 集合类类似于数组&#xff0c;与数组不…

策略路由和路由策略

目录 策略路由 路由策略 策略路由和路由策略 策略路由 Step1:配置ACL&#xff0c;匹配流量 acl number 2010 rule 10 permit source 192.168.10.0 0.0.0.255 acl number 2020 rule 10 permit source 192.168.20.0 0.0.0.255 Step2:流分类traffic classifier jiaoxue //匹配…

C/C++晶晶赴约会 2020年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C晶晶赴约会 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C晶晶赴约会 2020年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 晶晶的朋友贝贝约晶晶下周一起去看展览&#xff0…

如何查看多开的逍遥模拟器的adb连接端口号

逍遥模拟器默认端口号为&#xff1a;21503。 不过&#xff0c;使用多开器多开的时候&#xff0c;端口就不一定是21503了。 如何查看&#xff1f; 进入G:\xiaoyao\Microvirt\MEmu\MemuHyperv VMs路径中 每多开一个模拟器&#xff0c;就会多出一个文件夹。 进入你要查找端口号…

简述JVM

文章目录 JVM简介JVM运行时数据区堆(线程共享)方法区/元空间/元数据区(线程共享)栈程序计数器 JVM类加载类加载过程双亲委派模型 垃圾回收机制(GC)判断对象是否为垃圾判断是否被引用指向 如何清理垃圾, 释放对象? JVM简介 JVM 是 Java Virtual Machine 的简称, 意为Java虚拟机…

图解Kafka高性能之谜(五)

高性能网络模型NIO 简单架构设计&#xff1a; 详细架构设计&#xff1a; 高性能的磁盘写技术 高性能的消息查找设计 索引文件定位使用跳表的设计 偏移量定位消息时使用稀疏索引&#xff1a; 高响应的磁盘拷贝技术 批处理设计 请求亲和性设计 内存池高效、安全设计 高性能…

安防监控项目---boa服务器的移植

文章目录 前言一、boa服务器简介二、移植步骤三、测试结果四、A9平台移植BOA总结 前言 书接上期&#xff0c;在配置完成环境后&#xff0c;那么接下来呢还得移植两个非常关键的东西&#xff0c;一个呢时boa服务器&#xff0c;另一个呢时cgi接口&#xff0c;boa服务器能够使得我…

日常软件游戏丢失msvcp120dll怎么修复?分享5个修复方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“msvcp120dll丢失”。那么&#xff0c;究竟什么是msvcp120dll文件&#xff1f;当它丢失时&#xff0c;我们会遇到哪些问题呢&#xff1f;本文将从以下几个方面进行详细阐述。 msvcp120dll是…

线扫相机DALSA--采集卡Base模式设置

采集卡默认加载“1 X Full Camera Link”固件&#xff0c;Base模式首先要将固件更新为“2 X Base Camera Link”。 右键SCI图标&#xff0c;选择“打开文件所在的位置”&#xff0c;找到并打开SciDalsaConfig的Demo&#xff0c;如上图所示&#xff1a; 左键单击“获取相机”&a…

【python与数据结构】(leetcode算法预备知识)

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ python与数据结构 Python 中常见的数据类型数据结构1.数组&#xff08;Array&#xff09;2.链表&#xff08;Linked List&#xff09;3.哈希表&#xff08;Hash Table&#xff09;4.队列&#xff08;Queue&#x…