Linux中的shell外壳与权限(包含目录文件的权限,粘滞位的来龙去脉)
Linux中的shell外壳与权限[包含目录文件的权限,粘滞位的来龙去脉]
- 一.shell外壳的理解
- 1.为什么需要有shell外壳的存在?
- 2.什么是shell外壳?
- 3.shell外壳的运行原理是什么?
- 4.shell和bash的关系
- 二.Linux中的用户权限
- 1.用户分类与身份切换
- 1.用户分类
- 2.root用户切换为普通用户
- 1.su 用户名
- 2.su - 用户名
- 3.普通用户切换为root用户
- 1.su命令
- 2.su-命令
- 4.普通用户想要切换成另一个普通用户
- 2.sudo命令
- 三.文件权限
- 1.身份角色
- 2.为什么要有所属组?
- 3.如何更改权限?
- 1.chmod ugoa +- rwx file
- 2.利用8进制设置文件权限
- 4.root用户面前权限有作用吗?
- 5.chown和chgrp
- 6.own和grp一起改
- 7. 匹配原则:
- 四.文件类型
- 1.Linux中的文件类型
- 1.链接文件
- 2.管道文件
- 2.Linux中的文件后缀名
- 1.Linux中的文件类型是不通过后缀名区分的
- 2.Linux中的后缀名的作用
- 1.Linux中的工具需要通过后缀名去区分文件类型
- 2.Linux中的后缀名也是为了方便我们去进行操作
- 3.总结
- 3.file指令
- 五.常见的权限三个问题
- 一.目录文件的权限知识
- 1.r权限
- 2.w权限
- 3.x权限
- 二.文件的默认权限
- 1.权限角度来理解
- 1.普通文件
- 2.目录文件
- 2.通过(umask:权限掩码)的具体实现
- 1.实现的理解
- 1.异或的错误
- 2.减法的错误
- 2.实现方法
- 三.粘滞位
- 1.一个现象
- 2.那么zs该不该删呢?
- 3.粘滞位的引出
- 4.粘滞位的作用
一.shell外壳的理解
Linux严格意义上说的是一个操作系统,我们称之为"核心(kernel)",
但我们一般用户,不能直接使用kernel。
而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
1.为什么需要有shell外壳的存在?
操作系统本身是需要易用程度和安全性的
而对于我们使用电脑的普通用户来说,我们是不能直接访问操作系统的
为什么我们不能直接访问操作系统呢?
因为对于我们绝大多数人来说,我们对于操作系统并不熟悉,如果允许我们直接访问操作系统,势必会出现一些错误,所以需要有一个中间者
2.什么是shell外壳?
这个中间者的核心工作就是
将使用者的命令翻译给核心(kernel)处理。
同时,将核心的处理结果翻译给使用者。
在Linux中这个中间者就是shell外壳
在windows中这个中间者就是图形化界面
shell外壳的本质就是一个执行起来的程序(进程),在系统启动期间一直存在
3.shell外壳的运行原理是什么?
1.当用户想要执行的指令有风险时(例如用户自定义的指令),shell都是通过创建子进程的方式去让子进程执行有风险的指令
2.对于低风险的指令,shell外壳会自己去执行
3.每一次你进行xshell登陆的时候,操作系统都要给你这个用户的当前登陆创建一个shell,bash
4.shell和bash的关系
bash时shell外壳的一种,shell外壳还有其他的一些种类,bash属于shell外壳这个集合
二.Linux中的用户权限
1.用户分类与身份切换
1.用户分类
Linux中的用户分为
1.root用户(超级管理员)
2.非root用户,也就是普通用户(xxx)
2.root用户切换为普通用户
1.su 用户名
我们现在是root用户,想要切换为普通用户wzs
执行su wzs即可
无需输入wzs用户的密码
切换后当前所处目录不变
2.su - 用户名
本质:退出root用户,以wzs用户的身份重新登陆,登陆后进入wzs用户的家目录
3.普通用户切换为root用户
1.su命令
我们当前是wzs用户,执行su命令并输入root用户的密码后切换为root用户
并且我们所处的目录不变
2.su-命令
我们当前是wzs用户,执行su -命令并输入root用户的密码后切换为root用户
所处目录更新为root用户的家目录
本质上来说就相当于退出当前用户并以root用户的身份重新登陆
4.普通用户想要切换成另一个普通用户
这些命令需要使用root用户的身份去执行
在这里我们补充一个命令:adduser 用户名:添加用户
passwd 用户名:设置该用户的密码
userdel -r 用户名:删除用户
我们在这里使用root的身份新添加了一个用户zs
并且设置了这个用户的密码
我们现在是wzs用户,想要切换为zs
我们这里以su命令为例,su zs,并且输入zs的密码才可以切换为zs
而另一种方法是:从wzs用户切换为root用户,然后再切换为zs,这个过程只需要root用户的密码,不需要zs的密码
可见root用户的密码非常强大,非常重要,那么什么样的人才会具有root密码呢?
一般是管理员
2.sudo命令
如果一个普通用户不想把自己变成root,但是还想让我自己以root的权限执行一条命令
sudo 想要执行的命令(对指定的指令进行提权)
那么这个时候就有一个问题了,
如果我们输入sudo就可以以root用户的身份执行指定的命令,那么root用户的密码不就毫无意义了吗?
答案是:不是的,因为sudo命令不是一般用户能够执行的
比方说我现在是zs,我先使用root用户的身份执行ls命令,那么我就
sudo ls
结果:被拒绝了
只有一个用户的用户名在sudoers file这个配置文件中,才允许这个用户执行sudo
否则,不允许他执行sudo命令
那么如何把某个用户的用户名添加进sudoers这个配置文件中呢?
在学完vim的时候我们会进行介绍
三.文件权限
在我们的日常生活中有各种各样的权限,所谓权限就一定是用来限制一部分人的操作的
例如:在CSDN上有一些文章只有vip才能看,leetcode上有些题是会员专属题只有会员才能做…等等等等
而且不同的应用程序或者网站场所等等都是只能提供一些特定的服务的
例如:
我们在爱奇艺当中就不能刷算法题,在leetcode中就不能看电影…等等等等
就算我们同时是爱奇艺和leetcode的会员,也无法做到这些事情
因为爱奇艺本来就无法刷算法题,leetcode本来就不能看电影
也就是说对于一些应用程序或者网站场所,它没有提供那个服务,就算我们权限是最高级别的,
也无法要求它去提供对应的服务
1.身份角色
我们前面提到过Linux中一切皆文件
那么对于某个文件来说有三种身份角色
1.文件的拥有者
2.文件的所属组
3.other
2.为什么要有所属组?
大家可能会想了,文件的拥有者和other我知道为什么要有,但是为什么要有所属组呢?
我们未来的项目开发都是团队合作的,我们的代码很有可能也是需要被团队内部所能够访问的,因此为了区分团队内部成员跟other,Linux创建了所属组这个身份角色
而对于一个文件来说最重要的就是这三个属性:
r:读属性
w:写属性
x:执行属性
我们只用wzs用户创建了一个新文件test.txt
-rw-rw-r--
这个第一个-指的是test.txt这个文件不是目录文件
第2,3,4个分别是rw-:指的是文件拥有者对于这个文件拥有读,写权限,没有执行权限
第5,6,7个分别是rw-:指的是文件所属组对于这个文件拥有读,写权限,没有执行权限
第8,9,10个分别是r--:指的是other对于这个文件拥有读权限,没有写和执行权限
文件的详细属性(样例):
跟刚才举的现实生活中的例子相同的一点:
如果一个文件本来就没有执行的属性,就算你拥有这个文件执行的权限,你也执行不了这个文件,因为这个文件本来就不是一个可执行文件
所以Linux文件如果想要能够执行:
1.必须具有可执行权限x
2.它必须真的是一个可执行程序
3.如何更改权限?
1.chmod ugoa ± rwx file
u:user(文件的拥有者)
g:group(文件的所属组)
o:other
a:all(所有人)
+:添加对应权限
-:取消对应权限
rwx:读写执行权限
file:要修改权限的文件名
这里以test.txt为例:
例如我现在想要删除所有人的所有权限
例如我现在想要增加user的rwx权限
这时test.txt对于拥有者来说具有了执行权限,但是test.txt不是一个可执行程序
所以我./test.txt
去执行,没有任何反应
2.利用8进制设置文件权限
我们发现对于某个文件权限来说,这个文件权限一共有9个字符
对应到每个角色身上一共有3个字符,每个位置一共有两种状态,
一种是拥有这个权限,另一种是没有这个权限
如果我们用0来表示对应位置没有该权限,1来表示对应位置有该权限
所以我们可以用1个8进制数字来代表一个角色的权限,用3个8进制数字来代表整个文件的权限
例如:111:rwx权限都有
101:拥有r和x权限,没有w权限
所以我们可以这样去做
比方说我现在想设置test.txt的权限为:拥有者:rwx,所属组:r-x,other:—
对应到8进制表示为:750
4.root用户面前权限有作用吗?
没有作用
比方说我现在把test.txt的权限清空,转为root用户去添加内容,读取内容
丝毫没有任何约束
为了便于下面的操作,我新建了几个目录
5.chown和chgrp
那么我们来示范一下:
我现在想把这个文件给zs
但是给不了,为什么呢?
首先我们先明确一点:
那么怎么才能给他呢?
一般来说都是要用root去给,或者sudo指令提权
也就是这样:
使用root用户强制把这个文件给张三
那么能不能一起改呢?
答案是:可以的
6.own和grp一起改
比方说我想把这个文件的拥有者改成wzs,所属组改成zs
7. 匹配原则:
当一个人同时是文件的拥有者和所属组时,会先匹配他是拥有者,然后只看他作为拥有者的权限,不去看他作为所属组的权限
当我把文件的拥有者给root之后,我只是文件的所属组,那我就拥有了对于这个文件而言所属组的r权限了
四.文件类型
1.Linux中的文件类型
我们可以通过ll来查看Linux中的文件类型
我们先简单介绍一下链接文件和管道文件
1.链接文件
我们先创建一个test.c文件
然后我们gcc编译一下test.c文件,并且把生成的可执行程序a.out重命名为mycmd
然后把mycmd移动到dir/dir1/dir2/dir3的路径中
那么这个时候如果我想要在当前这个目录就能去执行mycmd,
那么我们只能
这样的话就不是很好,有点太麻烦了
这个时候链接文件就可以派上用场了
显而易见,这个链接文件就相当于我们在windows系统中创建的快捷方式
而且,在Linux中跟在windows系统中一样,删除快捷方式并不会影响到原来的可执行程序
在现在而言,我们就把它简单地理解为是快捷方式,这个链接文件我们以后还会遇到的
2.管道文件
管道文件跟我们之前介绍过的管道有非常紧密的联系,
我们可以先借助管道的作用来类比一下这个管道文件
如图,我们在第一个终端当中向管道文件mypipe中写入hello Linux.然后第一个终端就阻塞了.一直等到我们在另一个终端中接收这个hello Linux,
也就是说借助管道文件,我们就可以在两个终端之间进行信息交流了
管道文件和链接文件我们以后会详细介绍
2.Linux中的文件后缀名
Linux中的文件类型不通过后缀区分(但是:不代表Linux中后缀没有作用,后缀名还是有很大的作用的)
1.Linux中的文件类型是不通过后缀名区分的
首先,Linux中文件类型不通过后缀名区分,这个怎么理解?
首先我们用nano在test.c文件中写了一段C语言代码
无论我怎么修改这个可执行文件a.out的名字,我都是可以直接运行的
这也就说明了Linux下的文件类型是不通过后缀区分的
2.Linux中的后缀名的作用
1.Linux中的工具需要通过后缀名去区分文件类型
你不是刚才说过Linux中的文件类型是不通过后缀名区分的吗?
你现在怎么又说Linux中的工具需要通过后缀名去区分文件类型呢?
注意:Linux和Linux中的工具不是一回事
这里的Linux指的是Linux操作系统,
Linux操作系统跟Linux上面的工具,指令,编译器并不相同,也不包含
也就是说,这两句话没有任何冲突,矛盾的地方
下面给大家看一下演示:
我们把test.c重命名位test.txt,然后gcc编译,发现报错,无法编译
这也就说明了Linux中的工具需要通过后缀名去区分文件类型
2.Linux中的后缀名也是为了方便我们去进行操作
3.总结
3.file指令
file 文件名
file指令可以更加详细,直接地查看某一个文件的属性
五.常见的权限三个问题
一.目录文件的权限知识
为了方便讲解,我们把mycmd.mp4和test.txt文件都删除了
只剩下了一个mydir目录文件
现在我身为mydir这个目录的拥有者,我可以进入mydir
查看mydir中的文件
在mydir中创建文件
在mydir中删除文件
下面我们分别去掉对应权限看一下这一连串操作有哪些会受到影响
不过再此之前,我们在重新创建test.txt文件,并向里面写入一些数据
1.r权限
我连ls命令都执行不了,也就是说我根本连查看这个目录当中有什么什么文件的权限都没有
那么我可以写文件吗?
创建一个文件可以,查看一个文件的内容也可以,甚至我也可以删除一个文件
但是我连这个目录当中有什么类型的文件都无法知道
对于目录文件而言
r:决定了是否可以进行对文件属性信息进行查看的权利(ll/ls -l)
2.w权限
我们无法新建一个文件,删除一个文件
但是可以查看一个文件的内容,修改一个文件的内容
对于目录文件而言
w:决定了是否可以在目录下进行新建和删除文件
3.x权限
我无法进入mydir,也无法查看里面的内容,也无法对里面的文件进行任何修改,无法新建和删除文件
对于目录文件而言:
x:决定是否可以进入该目录
二.文件的默认权限
我们新建一个普通文件和一个目录文件
然后ll查看他们的属性
发现我们创建的普通文件:默认的权限不是777,而是664
我们创建的目录文件:默认的权限不是777,而是775
为什么呢?
1.权限角度来理解
1.普通文件
首先,我们知道如果一个普通文件有x权限,那么这个文件就有可能是可执行文件
而可执行文件只是这普通文件中的一种而已,占比并不大
所以Linux中的文件刚刚创建的时候,默认的权限应该是不带有x的
也就是说默认的起始权限应该是666
那么为什么是664呢?
我们又注意到,666和664的区别是:
666:对于other来说是rw-
664:对于other来说是r–
也就是说默认权限将other的w权限取消,这也合情合理,因为你other本来就不应该拥有能够修改我这个文件的权限
2.目录文件
首先,对于一个目录文件来说,进入目录,查看目录内容,查看对应的文件内容,新建/删除/修改某个文件都是有必要的,因此起始权限应该是777
那么为什么要是775呢?
777:other:rwx
775:other:r-x
也就是说默认权限将other的w权限取消,这也合情合理,因为你other本来就没有不应该拥有能够在我的目录中新建,修改,删除文件的权限
2.通过(umask:权限掩码)的具体实现
那么Linux是怎么实现的呢?
是通过umask掩码来实现的
这个umask的作用是:定制一个文件被创建的时候的默认权限
我们可以通过umask命令来看一下对应的umask掩码
而且umask是可以修改的
比方说我想把它改成0003
然后我再去创建一个普通文件,一个目录文件
发现:普通文件:664,目录文件:774
那么它是怎么实现的呢?
1.实现的理解
然后我们可能会想:这还不简单,
直接相减不就ok了吗?
或者:
异或一下不就ok了吗?
1.异或的错误
首先我们先证明一下为什么异或不对
我们提到过umask等于0003时,
普通文件:664,目录文件:774
那么我们用异或和普通文件为例来推导一下
看能否得出664
异或得出665来,所以异或失败
2.减法的错误
还是以上面那个为例
减法出来的是663,不对
2.实现方法
其实,实现方法是:
这么神奇,其实原理是这样的
只有当文件权限为1并且umask对应位置的数据也为1时,才会将文件权限的那个1改为0
umask先按位取反后,
就只需要让文件权限为1并且umask对应位置的数据为0时,将那个1改为0,如果文件的权限为0,依然保持是0
也就是说只有当文件权限为1并且umask对应位置的数据也是1的时候,该文件的权限才会保持是1,否则就是0
这不就是按位与(&)运算吗
三.粘滞位
1.一个现象
比方说有一天,root想要捉弄一下zs,但是"玩笑"开的太大了
什么玩笑呢?
root在zs的目录中创建了一大堆文件,
而且创建文件之后会还把这些文件的权限置为了000
关于这个shell脚本命令
我之前在Linux常见指令2中提到过
i=0; while [ $i -le 100 ]; do echo "hello $i";touch $i.txt; let i++;done
i=0; while [ $i -le 100 ];do chmod a-rwx $i.txt; let i++;done
权限是000,所以zs无法查看,修改这些文件,
但是root不受权限的约束,所以root可以随意操作这些文件
然后zs的工作环境非常糟糕,zs找了root很多次,root每次都是嘴上道歉,说一定会删了那些文件的,但是root没有一次真正去删过
后来zs受不了了,直接rm 全删了
可是那些文件zs没有任何权限啊,zs是怎么做到的呢?
因为这是zs的家目录,这个目录是zs的,zs作为这个目录的拥有者
拥有w权限,因此即使你root在我zs的目录下面捣乱,你建的文件,你把文件的权限全都关了,zs没法看,没法修改,但是zs能删除
也就是说:
一个文件能否被删除,并不取决于文件本身,而是取决于文件所处的目录的拥有者是否具有w权限!
2.那么zs该不该删呢?
而且我们系统的家目录本来就只允许这个家的主人(对应家目录的创建者)进入,所以一般情况下是不会出现我wzs在你zs的目录中创建文件的.所以两个普通用户之间基本是不会出现这种情况的
3.粘滞位的引出
我wzs没法进入你zs的目录,你zs也没法进入我wzs的目录,可是如果我们现在有一个需求:
如果我们想要在一个特定的目录下面来实现文件的共享呢?
root创建了一个tmp目录,并且为了实现让多个用户之间可以数据共享,root将other的rwx权限全部放开
这里我们发现other的x权限被改为了t,这是为什么?
这个t就是粘滞位,我们为了凸显出粘滞位的作用
所以先把other的t这个权限去掉
然后我们让wzs和zs在tmp目录下共享文件
这里wzs创建了一个文件test.txt
往里面写了hello Linux
zs成功读取了test.txt文件
成功实现了wzs和zs共享文件的需求
但是呢,假设有一天,wzs和zs闹掰了
wzs把zs的权限关了,也就是把other的权限关了
zs没法读,没法写,zs一气之下把test.txt删了
在这里zs不该删的,就算zs真的想要删,也不应该让zs有这个权限去删除
但是为什么zs可是删除呢?
因为tmp这个目录对于other来说rwx的权限都放开了
zs和wzs都是other,都有w权限,因此都可以删除彼此的文件
Linux系统必然不能允许这种行为成功执行
因此引入了粘滞位这一解决方案
4.粘滞位的作用
下面我们把other的t权限加上
我们再去重复一下刚才的操作
这个时候zs就删不了我wzs的文件了
那么粘滞位的作用是什么呢?
粘滞位:就是给目录中的other设置一个权限位,具有x的意义
同时也进一步对目录权限进行特殊限定:
该目录里面的文件,只有root和文件的拥有者才有权利进行删除
其他人一概不允许!
以上就是:Linux中的shell外壳与权限(包含目录文件的权限,粘滞位的来龙去脉) 的全部内容,
希望能对大家有所帮助!
最后,祝大家1024节日快乐!
相关文章:

Linux中的shell外壳与权限(包含目录文件的权限,粘滞位的来龙去脉)
Linux中的shell外壳与权限[包含目录文件的权限,粘滞位的来龙去脉] 一.shell外壳的理解1.为什么需要有shell外壳的存在?2.什么是shell外壳?3.shell外壳的运行原理是什么?4.shell和bash的关系 二.Linux中的用户权限1.用户分类与身份切换1.用户分类2.root用户切换为普通用户1.s…...
力扣第45题 跳跃游戏II c++ 贪心算法
题目 45. 跳跃游戏 II 中等 相关标签 贪心 数组 动态规划 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处…...
1024动态
感叹一下当前行情 从事码农这些年今年是最难的一年...

中心胖AP(AD9430DN)+远端管理单元RU(R240D)+出口网关,实现组网
适用于:V200R008至V200R019C00版本的万兆中心胖AP(AD9431DN-24X)。 组网规划 RU管理:VLAN 100,网段为192.168.100.0/24。 无线业务:VLAN 3,SSID为“wlan-net”,密码为“88888888”…...
shell_45.Linux在脚本中使用 getopt
在脚本中使用 getopt $ cat extractwithgetopt.sh #!/bin/bash # Extract command-line options and values with getopt # set -- $(getopt -q ab:cd "$") # echo while [ -n "$1" ] do case "$1" in -a) echo "Found the -a opt…...
2023-8-20 CVTE视源股份后端开发实习一面
自我介绍 操作系统 1 有了解进程和线程的特点吗 2 在linux层面的话是怎么创建一个进程或者一个线程的(具体的系统调用的命令) 答: 3 如果是java层面讲,怎么去启动一个线程,要实现哪些方法呢 Thread类实现run()方法的…...

二叉树进阶
欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻二叉搜索树概念 Ǵ…...

前端性能优化 - 虚拟滚动
一 需求背景 需求:在一个表格里面一次性渲染全部数据,不采用分页形式,每行数据都有Echart图插入。 问题:图表渲染卡顿 技术栈:Vue、Element UI 卡顿原因:页面渲染时大量的元素参与到了重排的动作中&#x…...

手写 Promise(1)核心功能的实现
一:什么是 Promise Promise 是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,原型上有then、catch等方法。 Promise对象有以下两个特点。 (1)对象的状态不受…...

深入探究Java内存模型
文章目录 🌟 Java虚拟机内存模型🍊 一、方法区🍊 二、堆🎉 堆的基本概念🎉 堆的结构📝 新生代📝 老年代 🎉 堆的分配策略📝 对象优先分配📝 空间优先分配 &am…...

深度学习 | Pytorch深度学习实践 (Chapter 10、11 CNN)
十、CNN 卷积神经网络 基础篇 首先引入 —— 二维卷积:卷积层保留原空间信息关键:判断输入输出的维度大小特征提取:卷积层、下采样分类器:全连接 引例:RGB图像(栅格图像) 首先,老师…...

谈谈你对spring boot 3.0的理解
谈谈你对spring boot 3.0的理解 一,Spring Boot 3.0 的兼容性 Spring Boot 3.0 在兼容性方面做出了很大的努力,以支持存量项目和老项目。尽管如此,仍需注意以下几点: Java 版本要求:Spring Boot 3.0 要求使用 Java 1…...

【大数据】Hadoop
文章目录 概述Hadoop组成HDFSMapReduce写MapReduce程序(Hadoop streaming) YARNHadoop 启动 工作方式Hadoop的主从工作方式Hadoop的守护进程 运行模式本地运行模式伪分布式运行模式完全分布式运行模式 Hadoop高可用的解决方案ZooKeeper quorumZKFC 环境搭…...

Spring实例化源码解析之Bean的实例化(十二)
前言 本章开始分析finishBeanFactoryInitialization(beanFactory)方法,直译过来就是完成Bean工厂的初始化,这中间就是非lazy单例Bean的实例化流程。ConversionService在第十章已经提前分析了。重点就是最后一句,我们的bean实例化分析就从这里…...
git常用的几条命令介绍
必须了解的命令整理 1,git init 初始化一个新的Git仓库。 这将在当前目录中创建一个名为".git"的子目录,Git会将所有仓库的元数据存储在其中。 2,git clone 克隆一个已存在的仓库。 这会创建一个本地仓库的副本,包…...

使用VisualSVN在Windows系统上设置SVN服务器,并结合内网穿透实现公网访问
文章目录 前言1. VisualSVN安装与配置2. VisualSVN Server管理界面配置3. 安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4. 固定公网地址访问 前言 SVN 是 subversion 的缩写,是一个开放源代码的版本控制系统…...

第18章 SpringCloud生态(三)
18.21 Nacos能存储什么样格式的数据(配置中心) 难度:★ 重点:★ 白话解析 看下面这副Nacos控制台的截图就明白了 参考答案 六种格式数据:Text、JSON、XML、Yaml、HTML和Properties格式。 18.22 Nacos是如何实现配置动态更新的(配置中心) 难度:★★ 重点:★★★ 白话…...

leetcode:2347. 最好的扑克手牌(python3解法)
难度:简单 给你一个整数数组 ranks 和一个字符数组 suit 。你有 5 张扑克牌,第 i 张牌大小为 ranks[i] ,花色为 suits[i] 。 下述是从好到坏你可能持有的 手牌类型 : "Flush":同花,五张相同花色的…...

2007-2022 年上市公司国内外专利授权情况数据
2007-2022 年上市公司国内外专利授权情况 1、来源:国家知识产权局 2、时间:2007-2022 年 3、范围:上市公司 4、指标: 证券代码、年份、省份、城市、行业代码、授权地区、申请类型、专利、发明专利、实用新型、外观设计 5、…...
安全渗透测试网络基础知识之路由技术
#1.静态路由技术 ##1.1路由技术种类: 静态路由技术、动态路由技术 ##1.2静态路由原理 静态路由是网络中一种手动配置的路由方式,用于指定数据包在网络中的传输路径。与动态路由协议不同,静态路由需要管理员手动配置路由表,指定目的网络和下一跳路由器的关联关系。 比较适合…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...