【Linux系统】—— 权限的概念

news2024/12/14 10:56:47

【Linux系统】—— 权限的概念

  • 1 权限
    • 1.1 什么是权限
    • 1.2 为什么要有权限
    • 1.3 理解权限
  • 2 文件的权限
    • 2.1 文件角色
    • 2.2 文件权限
    • 2.3 修改文件权限
      • 2.3.1 修改目标属性
        • 2.3.1.1 字符修改法
        • 2.3.1.2 8进制修改法
      • 2.3.2 修改角色
  • 3 文件权限补充知识点
    • 3.1 只能修改自己的文件权限
    • 3.2 没有权限
    • 3.3 确定权限位规则
    • 3.4 root 用户的权限
    • 3.5 如何理解可执行
  • 4 目录的权限
    • 4.1 rwx 分别对目录代表什么
    • 4.2 理解 Linux 多用户之间的隔离
    • 4.3 缺省权限
  • 5 粘滞位
    • 5.1 现象引出
    • 5.2 删除文件所需权限
    • 5.3 多用户如何进行文件级别协作
    • 5.4 粘滞位

1 权限

1.1 什么是权限

权限的本质:能或不能做某些事情

  权限决定的是能还是不能的问题。比如校长能进他的办公室,你就不能进校长办公室;某些电影电视剧只有 VIP 能看,而你不是 VIP 就不能看。
  

1.2 为什么要有权限

  为什么要有权限呢?本质上还是为了控制用户的行为,防止错误的发生
  
  如果没有权限:一个关键的文件,本来只有管理员才能卸载的,没有权限随便一个普通人就能卸载,那可能导致整个系统的崩溃。我新写的文件,随便被某个人复制过去,我做任何事情都没有任何东西保护……如果没有权限,可能会导致各种各样的错误发生。

  权限规则的设定,永远是最顶级的上层的人设计,比如写 Linux 的程序员,以限制普通用户的行为,防止混乱和错误的发生
  

1.3 理解权限

  现在我们对权限的概念还很模糊,我们通过两个例子来了解权限。

例一:
  为什么校长能进校长办公室,而你不能进校长办公室?这说明权限首先限制的是“人”
我们再想一想:假如校长叫老王,它能进校长办公室是因为它叫老王还是因为它是校长呢?
  我们发现在这个世界上你是谁一点都不重要,你扮演什么角色才是最重要的
  一个公司的大老板,事业辉煌时人前人后;日落西山,没人理他。人还是那个人,之所以这样是以为他的角色变了
  权限首先限制的是角色
  
例二:
  我是无法再VS上看电影的,我也无法再爱奇艺上写代码。
  这说明什么呢?
  这说明如果要访问的目标对象天然没有目标属性,那么他也绝对不会具备对应的权限
  即便我是爱奇艺的顶级会员,我也没有在其上面写代码的能力,因为爱奇艺压根没有写代码的功能
  所以 权限要求对应的目标必须具备对应的属性

  
结论:

权限 = 角色 + 目标权限属性

  

2 文件的权限

2.1 文件角色

  通过前面的学习,我们知道 Linux中一切皆文件,因此未来我们操作 Linux 系统都是面对的对象都是文件。

权限 = 角色 + 目标权限属性

  对一个文件来说它的文件属性无非就三个:读权限写权限执行权限
  而文件的角色又有谁呢?也分三种:拥有者所属组other

  我们在系统目录下查看到的文件信息基本都如下图所示:

在这里插入图片描述

  黄框那一列表示文件的拥有者,蓝框那一列表示文件的所属组。那怎么不见 o t h e r other other 呢? o t h e r other other 不用单独记录,只要不是拥有者和所属组,就是other。拥有者和所属组一定是具体的某个人,而 o t h e r other other 非常多,不必记录,也不可能完全记录

  这里问大家一个问题:root、gy、user1、user2等用户与拥有者、所属组、other他们是什么关系呢?
  拥有者、所属组、other 是一种角色,像前面的校长角色;而 root、gy、user1、user2 是具体的人,像前面的老王。
  
  一个文件通常有拥有者等角色,而每个角色是由对应的"人"来扮演的。比如 gy 用户,它可以是一个文件的拥有者,也可以是一个文件的 other。他们间并不冲突,反而还互相补充。


什么是所属组呢?
  首先所属组可以是很多人构成一组,也可以是一个用户自成一组。现在使用 Linux 很多时候都不用考虑所属组的问题,因为大部分时候都是自成一组
  
  那为什么要设计界出所属组呢?
  举个栗子:
  背景如下:现在公司让小明所在的 A组 与 B组 共同研发一个功能,看谁研发出来的更好就用谁的。
  小明吭哧吭哧敲了几天代码,一天组长要看小明的代码写的怎么样了。组长要看到小明写的代码,小明就要开放相关文件的权限,如果文件的角色只有 拥有者 和 other ,那么拥有者无疑是小明,组长是other身份,所以组长要看代码小明只能开放 other 角色的权限,那 B组 的成员也是 other 角色,这样不就也可以看到了小明的文件内容了吗。所以 Linux 设计出了所属组的角色,这样小明只需要将组长拉进所属组的角色,开放所属组的权限,这样组织就能看到,而 B组 成员还是 other 角色,就看不到小明的代码了。
  

2.2 文件权限

  对于一个文件来讲,它所具备的属性无非就三种:读属性写属性执行属性
  在 Linux 中:读用 r 表示;写用 w 表示;执行用 x 表示

  未来我们表述文件的权限时,要把文件的角色和目标属性结合起来进行表述
  如:某某文件的拥有者具备读写属性、所属组具备读写属性、other 具备读属性
  对于任意文件来讲,它有三种角色,每种角色对应三种属性

  在前面 「ll」 命令所显示的众多文件属性中,第一大列所显示的属性就代表着文件的权限

  它的第一大列的第一列即第一个字符表示 文件类型;第一大列除去第一个字符还剩下 9 个字符,这 9 个字符又每三个字符分为一组,每组分别代表着三种角色所拥有的权限,按顺序分别代表着拥有者、所属组、other
  在这里插入图片描述

  

在这里插入图片描述

  每一组分别有三个字符:第一个字符表示该角色是否允许读(r/-)、第二个字符表示该角色是否允许写(w/-)、第三个字符表示该角色是否允许执行(x/-)
  每组的的三个字符代表的属性一定是按顺序:读(r/-)、写(w/-)、执行(x/-),该位置上只能有对应字母和 "-"两种字符
  例如描述 root.txt 文件的权限:该文件的拥有者是 root,拥有者能够读、写文件但不能执行;所属组是 root。所属组对该文件只有读权限不能写和执行;other 对该文件只有读权限不能写和执行

Linux表示说明Linux表示说明
r–只读-w-仅可写
–x仅可执行rw-可读可写
-wx可写和可执行r-w可读可执行
rwx可读可写可执行无权限

  

2.3 修改文件权限

2.3.1 修改目标属性

2.3.1.1 字符修改法
  • 语法:「chmod」 [选项] 权限 文件名
  • 功能:改变文件或目录的访问权限,用它控制文件或目录的访问权限。

+ - = 权限字符

  • + : 向权限范围增加权限代号所表示的权限
  • - : 向权限范围取消权限代号所表示的权限
  • = : 向权限范围赋予权限代号所表示的权限

用户符号:

  • u:拥有者
  • g:拥有者同组
  • o:其它用户
  • a:所有用户

  

我们以 t e s t . t x t test.txt test.txt 文件为例:
在这里插入图片描述
  
给拥有者减去r权限
在这里插入图片描述

  
给所属组加上x权限
在这里插入图片描述
  
给 other 加上 wx 权限
在这里插入图片描述
  
给所有人减去 w 权限
在这里插入图片描述
  
给拥有者和所属组加上 w 权限
在这里插入图片描述

  

2.3.1.2 8进制修改法

  除了上面的修改方法,修改文件属性还能利用8进制进行修改

  前面曾经说过,每一组都有三个字符,每一位由:r/-、w/-、x/- 二选一,你会发现三个位置上的状态都是两态的,可以认为是:是和否。
  既然是两态的,我们为什么不能把他 看做是1/0 呢?如:r- - 看成 100;-w- 看成 010;rw- 看成 110。反正每个位上表示的属性是确定的,1代表该位置有效、0代表代位置无效
  同时因为2进制对我们用户不友好,我们转换为 8进制(3个 bit 位)。110 = 6 = rw-、100 = 4 = r--

  我们可以利用这点来修改文件属性

在这里插入图片描述

  

2.3.2 修改角色

  • 语法1:「chown」 [选项] 用户名 文件名
  • 功能:更改文件或目录的拥有者。

  我们以 test.txt 文件为例。此时 test.txt 文件的拥有者和所属组都是 gy 用户

在这里插入图片描述

  将拥有者改为 root

在这里插入图片描述

  我们发现不能改
  是不是不能给 root 呢?那我把文件给普通用户

在这里插入图片描述

还是不行。

  为什么呢?
  你想把你的文件给别人,你凭什么给被人呢?将文件的属性修改,是因为这个文件是你的你可以去修改,影响上只能影响你自己。但你把文件给别人,影响的就不仅仅是你自己,要是你给我一个全是 bug 的文件,甩锅给我,那我怎么办。

  所以系统默认不允许把文件给别人,想给别人必须高权限!
  所以想将文件给别人要切换 root 用户或者指令的短暂提权(你要不要?不要我揍你),这里我们直接切换 root 用户

在这里插入图片描述

  

「chown」还能同时修改拥有者和所属组

  • 语法:「chown」 [选项] 拥有者:所属组 文件名
  • 功能:更改文件或目录的拥有者和所属组。

  先将 test.txt 文件的拥有者改回来

在这里插入图片描述

  同时修改拥有者和所属组

在这里插入图片描述

  
如果只想改文件的所属组,可以用「chgrp」

  • 语法:「chgrp」 [选项] 用户组名 文件名
  • 功能:修改文件或目录的所属组

在这里插入图片描述

  
  

3 文件权限补充知识点

3.1 只能修改自己的文件权限

  任何人都能修改文件权限吗?
  不是的,用户只能修改自己的文件权限

  上面我们能改 test.txt 的文件权限,那是因为改文件拥有者是 gy 的,而我们是以 gy 用户的身份去改的

在这里插入图片描述

  如果文件拥有者是 root/user1/user2 等,gy 用户是不能修改的

在这里插入图片描述

  

3.2 没有权限

  如果我们本身不具备某种权限,那么系统会拒绝我们的访问

  我现在是 test.txt 文件的拥有者,我可以对文件进行操作

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

  我们将拥有者的 r 权限关闭,无法读只能写

在这里插入图片描述

  再把拥有者的 w 权限关闭,写也不能写了

在这里插入图片描述

  可见如果我们本身不具备某种权限,那么系统会拒绝我们的访问
  

3.3 确定权限位规则

  可是有细心的小伙伴可能发现:gy 用户确实是 test.txt 文件的拥有者,该文件的拥有者权限也确实全关闭了,可 gy 用户还是 test.txt 文件的所属组啊,所属组的读和写权限还在呢?为什么我不能以所属组的身份去访问呢?系统依然不允许我们去读和去写

在这里插入图片描述

  实际上,在确定权限信息时,系统会先确定用户是谁?是拥有者、所属组还是 other。在 ubunto 和 centos 下用户角色的确定,只确定一次,顺序依次是拥有者、所属组、other。即一旦确定用户是拥有者,只看拥有者对应的权限,即使拥有者没有任何权限也不再二次确认用户是否是所属组

  有小伙伴可能会问:关所属组和 other 的权限我能理解,为什么要拥有者的权限呢?闲的没事干吗
  有时候我们是需要将拥有者的权限关闭的。有些文件比较重要,这时为了防止自己误操作,就可以将自己的权限关闭。而且自己的权限随时能打开,毕竟文件是自己的,文件权限随时能修改

  

3.4 root 用户的权限

  我们关闭 test.txt 文件 other 的所有权限

在这里插入图片描述

  现在,我们用 root身份 去读和写 test.txt 文件
  理论上来说,root 不是拥有者也不是所属组,理应是不能读和写的,但事实真是这样吗?

在这里插入图片描述

  事实是 r o o t root root 即能读也能写。

   r o o t root root 还能把整个文件的权限关了,自己依然能访问

在这里插入图片描述

  
  听说拥有者能把权限改回来?那我把拥有者改为我自己,这文件你也不要要了

在这里插入图片描述

  所以: r o o t root root 的权限不受任何权限约束
  所有的规则权限都是用来限制普通人的,总要有一个超用户权限来进行一些错误的修正

  这也说明了为什么普通用户不能把文件给别人,而 root 可以强制将文件给别人
  

3.5 如何理解可执行

  在前面我们谈论文件的权利时,主要谈论的是读和写,但别忘了文件还有一个属性是可执行

  如果我给角色可执行的权利,那这个文件就可以被执行了吗?

在这里插入图片描述

  答案是否定的。
  可执行权限 != 文件可执行

  怎么理解呢?
  有一句话叫:给你机会你不中用啊
  这句话说明什么呢?什么你想办成一件事,首先要给你机会,其次你要有能力机会和能力缺一不可
  给你机会你不中用意思是给了你就会但你没这个能力,所以这事你也做不成。

  给文件加了可执行权限只是允许这个程序将来可以被执行,但不代表这个程序本身就可以执行。只有你具有可执行权限,在加上你本身就可以执行,两者结合你才能真正的才能执行

  

4 目录的权限

4.1 rwx 分别对目录代表什么

  现在我问大家一个问题:如果我想进入一个目录,需要什么权限呢?会是读权限吗
  现在我们想进入 code 目录中

在这里插入图片描述

控制变量法,我们挨个来试一下
  

  1. 只开读权限
    在这里插入图片描述
    与读权限没关系
  1. 只开写权限
    在这里插入图片描述
    与写权限没有关系
  1. 只开执行权限
    在这里插入图片描述
    成功了

  所以进入一个目录需要执行权限

  既然进入目录需要执行权限,那读权限和写权限对于目录来讲意味着什么呢?

没有读权限,我们无法查看目录中的文件内容,即「ls」指令无效
在这里插入图片描述

没有写权限,我们无法在目录中新建文件或者删除文件
在这里插入图片描述

  

总结:

  • 可执行权限:如果目录没有可执行权限,则无法进入目录中
  • 可读权限:如果目录没有可读权限,则无法通过「ls」等指令看到目录中的文件内容
  • 可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件

  那如果我是超级用户呢?
  超级用户不受权限约束,即使目录没有任何权限,超级用户依然可以为所欲为

  默认情况下,新建一个目录,rwx 权限都要有,因为少一个权限它的操作就不完整

在这里插入图片描述

  

4.2 理解 Linux 多用户之间的隔离

  在 Linux 下,可以创建多个用户,用户之间彼此是互相不影响的。 Linux 是怎么做到的呢?

  在我们的 Linux 系统中,我们每新建一个普通账号,这个普通账号都会在 home 目录下新建一个以该用户名命名的目录。当以某一用户登录时,默认所处家目录就是:/home/用户名

在这里插入图片描述

  仔细观察一下 gy 目录,发现它拥有者权限是全部开启,但是 所属组 和 other 关闭了写的权限。这意味着任何其他用户都不能对其他用户的家目录进行修改
  这样就能实现多用户之间的隔离
  

4.3 缺省权限

  我们新建一个文件,默认权限是这样的

在这里插入图片描述

  新建一个目录,默认权限是这样的

在这里插入图片描述

  为什么默认权限会是这样子的?

  • 对于普通文件:起始权限从 666 开始,即普通文件默认不带可执行。
  • 对于目录文件:起始权限从 777 开始。

  可是这好像也不对,新建出的普通文件是 664,而目录是 775。甚至各位小伙伴可以自己新建一个普通文件和目录,发现其权限与我当前都不一样。

  也就是说最终的权限并不等同于起始权限。系统中有一个概念叫权限掩码,最终的权限还受权限掩码的影响

  权限掩码可通过 umsk 去查看

在这里插入图片描述

  我当前系统的权限掩码是 0002

  权限掩码是在系统默认是设置好的,它是一个8进制的数字
  第一个 0 我们不用考虑,它是与用户相关的,我们只需要考虑后面的数字
  这里的 002 换成二进制 000 000 010
  文件最终权限 == 起始权限 &( ~umask )

  我们以普通文件777为例
  777 换成二进制为 111 111 111
  000 000 010 按位取反为 111 111 101
  按位与得 111 111 101
  因此普通文件最终权限为775

  那 u n a s k unask unask 的目的是什么?
   u m a s k umask umask 最终的目的是:凡是在 u m a s k umask umask 总出现的权限,都不应该在最终权限中出现

  为什么要有 u m a s k umask umask 呢?
  如果没有 u m a s k umask umask,一个文件创建时默认的权限,由 OS 自主决定,无法在创建前进行修改。由 u m s k umsk umsk,则系统可以灵活满足不同的需要。
  在有些特殊情况下,我们可以通过配置 u m a k umak umak 控制文件的默认权限,让我们的代码都是可控的

   u m a s k umask umask 是可以修改的

在这里插入图片描述

  
  这时我们再新建普通文件和目录就没有任何权限啦

在这里插入图片描述

  
   u m a k umak umak 是内存级的,也就是说你修改了 u m a s k umask umask ,下次登录时 u m a k umak umak 还是系统的默认值。

  
  

5 粘滞位

5.1 现象引出

  下面,我以 root 用户在普通用户 gy 的目录下创建一个 root.txt 文件

在这里插入图片描述

  

  此时文件的拥有者与所属组都是 root,我们再将文件的 other 权限全部关闭

在这里插入图片描述

  
  我们再切换回普通用户 gy,通过前面的学习我们知道,此时 gy 用户是无法进行读写的

在这里插入图片描述

  
  但是我们吃惊的发现,gy 用户居然可以删除 root.txt 文件

在这里插入图片描述

  为什么呢?我不是文件的拥有者,而且对该文件没有任何的权限,但我却可以删它!

  

5.2 删除文件所需权限

  我不能读不能写你的文件,但我可以把你的文件删了?这正常吗?
  在 Linux 中这是正常的,为什么这么说呢?

  当前我们是在 lesson5 的目录下

在这里插入图片描述

  lesson5 用户的拥有者与所属组都是 gy 用户

  gy用户对该目录有写权限,前面我们说过:对一个目录有写权限,就可以修改该目录。 创建新文件算是修改目录的内容,那么删除文件是不是修改目录的内容呢?很明显也算。
  所以对于目录来讲,你有 w 权限,不仅能创建新文件,删除也算修改,同样可以删除文件
  所以为什么 gy 用户能删除 root 用户的文件呢?
答案很简单,因为一个文件能否删除和文件本身无关,只与文件所在目录的 w 权限有关

  大家想一想:你先别问我为什么能删root的文件,你先回答我你为什么要在我的目录新建文件,还这么猖狂不给我开权限

  一个文件能读能写能执行,是由文件自身决定的,但文件能不能"或"并不由它自己决定,而由它所在的目录决定的
  毁灭你,与你何干

  事实上,上述情况是很少发生的,因为普通用户是无法进入另一个用户的工作目录下的

在这里插入图片描述

  我进都进不去,还怎么在里面搞事情呢?
  一般能在别人工作目录下新建文件的只有 root;如果是普通用户,那它一定是先变成 root 再进去新建的

  

5.3 多用户如何进行文件级别协作

  现在有一个问题:多用户之间如何进行文件级别的协作呢?
  什么意思呢?
  举个例子:小明的任务是往文件中写入数据,而小帅的任务是对小明写入的数据进行分析

   通过前面的学习,我们意识到这个文件一定不能放在一个私人的账号里,不然另一个人如何进去都是一个问题。

  要知道,在 Linux 系统中不仅仅只有 /home 路径,在根目录/下,还有许多与 /home 路径平级的路径,他们不属于任一用户,只属于 root
  比如:/tmp

在这里插入图片描述

  tmp 目录通常放的是临时的数据
  我们可以直接将文件放在 tmp 下,该目录给所有人都开放权限,这样大家都能进入该目录访问里面的文件,就能进行多用户之间的协作了。

  这里我们为了演示,我们用 root 用户创建一个 temp-backup 文件(在根目录创建文件只能用 root 账号创建),并开放所有权限

在这里插入图片描述

  
  比如,现在我用 gy 用户在 temp-backup 目录下创建新文件 gy.txt,gy 用户可以对它进行读写

在这里插入图片描述

  
  此时,cwq 用户也可以进入到 temp-backup 目录中,对该文件进行读

在这里插入图片描述

  当然,如果gy用户如果开放写权限,cwq用户还能对该文件进行写

  这样,gy 用户和 cwq 用户之间就能进行文件协作了。
  

5.4 粘滞位

  可是上述有这样一个隐患:如果有人误操作或者故意将 gy.txt 文件删掉怎么办?又或者 cwq 和 gy 闹掰了,cwq 一气之下把 gy.txt 文件删除了怎么办
  因为文件的创建与删除至于当前所在目录的 w 权限有关,现在 temp-backup 目录对 other 都开放了 w 权限,也就是说所有人都可以在里面创建文件,也可以删除文件
  能不能通过关闭 w 解决呢?
  不行,因为关闭 w,虽然所有人都不能删除了,但是所有人也都不能创建了,也就失去了共享目录的意义

  也就是说现在我们有一个需求:对于共享目录,任何人都能创建新文件,但是我们不想让该文件的非拥有者删除文件。

  为此,Linux 引入了一个新的权限标志位:t
  我们将 t 称为粘滞位

  我们先进行实验
  首先我们用 root 用户来将 temp-backup 目录加上粘滞位

在这里插入图片描述

  加上粘滞位后,我们发现目录权限中 other 权限位中的 x 变成 t

  此时 cwq 用户依然可以读 gy.txt 文件

在这里插入图片描述

  但是无法再删除文件了

在这里插入图片描述

  为什么呢?因为现在有了对应的权限位约束

  粘滞位 t 可以让我们在共享目录下,不会让一个非文件拥有者删除文件,即使它有该目录的 w 权限

  那 root 可以删除吗?root 是可以的。前面我们说过:root 跳出所有规则的约束,而且 root 是该目录的拥有者

:粘滞位 t 只能给需要共享的目录添加粘滞位,加粘滞位不是在自己的家目录中加,这样没有任何意义

  我们平时是不用让 root 新建一个 temp-backup 来进行文件共享的,根目录下本来就有个 tmp 目录,就是用来进行多用户减的文件协作的

在这里插入图片描述

  而且我们注意到 tmp目录默认也是加了粘滞位 t 的
  
  
  
  


  好啦,本期关于权限的知识就介绍到这里啦,希望本期博客能对你有所帮助。同时,如果有错误的地方请多多指正,让我们在 L i n u x Linux Linux 的学习路上一起进步!

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

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

相关文章

js:我要在template中v-for循环遍历这个centrerTopdata,我希望自循环前面三个就可以了怎么写

问&#xff1a; 我按在要在template中v-for循环遍历这个centrerTopdata&#xff0c;我希望自循环前面三个就可以了怎么写&#xff1f; 回答&#xff1a; 问&#xff1a; <div v-for"(item, index) in centrerTopdata.slice(0, 3)" :key"index"> d…

016 在路由器上配置 DHCP

配置路由器端口IP地址 将路由器的端口地址配置好&#xff0c; 左边的网络地址是 192.168.1.0 右边的网络地址是 192.168.2.0 配置路由器的DHCP服务 打开命令窗口&#xff0c;进入特权模式 进入全局配置 conf t创建一个DHCP地址池&#xff1b; po1 是地址池的名称&#xf…

使用IP自签名SSL证书

最近需要创建WebSocket服务器并使用SSL证书&#xff0c;由于是内网测试&#xff0c;所以需要使用指定IP的自签SSL证书。 其实笔者前面博文 使用nexus3作为Docker镜像仓库 解决nexus3登录x509: certificate has expired or is not yet valid 中有创建过相应的证书&#xff0c;这…

多模态大模型(二)——用Transformer Encoder和Decoder的方法(BLIP、CoCa、BEiTv3)

文章目录 BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation 理解、生成我都要&#xff0c;一个很有效的、根据图片生成caption的工具1. BLIP的研究动机2. BLIP的模型结构3. CapFilt Model4. BLIP的训练过程 CoCa: C…

vue季度选择器(antd2.0 版本无此控件,单独写一个)

vue季度选择器 效果显示 效果显示 <template><div><a-popoverplacement"bottom"overlayClassName"season-picker"trigger"click"v-model"showSeason"><template #content><div class"season-picker-b…

基于Spring Boot + Vue的摄影师分享交流社区的设计与实现

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…

利用GeoWave导入矢量数据到HBase/Accumulo数据库

前言 最近在做有关地理时空大数据的实验&#xff0c;本文将介绍如何利用geowave框架&#xff0c;将矢量数据导入到HBase或Accumulo等NoSQL数据库中。 软件版本&#xff1a; Hadoop: 2.10.2 Zookeeper: 3.6.4 geowave: 1.2.0 Accumulo&#xff1a;1.9.3 HBase: 1.4.0 Ja…

常回家看看之Tcache Stashing Unlink Attack

前言&#xff1a; 在开始了解这个攻击手法的前提&#xff0c;需要先了解一个函数也就是calloc函数&#xff0c;众所周知&#xff0c;当libc版本大于等于2.27的时候会引入tcachebin&#xff0c;而Tcache Stashing Unlink Attack就是发生在2.27版本以上&#xff0c;那么这个和ca…

心情追忆- SEO优化提升用户发现率

之前&#xff0c;我独自一人开发了一个名为“心情追忆”的小程序&#xff0c;旨在帮助用户记录日常的心情变化及重要时刻。我从项目的构思、设计、前端&#xff08;小程序&#xff09;开发、后端搭建到最终部署。经过一个月的努力&#xff0c;通过群聊分享等方式&#xff0c;用…

深入探索:createThread与cancelThread的用法及实例

在多线程编程领域,线程的创建与管理是核心技能之一。本文将详细介绍两个关键函数:createThread(用于创建新线程)和cancelThread(用于取消已存在的线程),并通过具体实例展示它们的用法。需要注意的是,不同的编程语言和线程库可能有不同的API设计,但基本概念是相通的。本…

Cherno C++学习笔记 P36 初始化类成员

这一篇文章我们主要讲一下如何初始化类成员&#xff0c;并给出一个初始化类成员的小技巧。我们都知道&#xff0c;我们会使用构造函数来初始化我们的类成员变量。 首先我们来举一个简单的小例子&#xff0c;展现一下构造函数的功能&#xff1a; #include<iostream> #in…

快速解决git@github.com: Permission denied (publickey)

在使用github进行项目克隆的时候&#xff0c;有些时候会出现“gitgithub.com: Permission denied (publickey)”的错误。这个问题大部分是由于新设备本地密钥未加入gitbub列表中&#xff0c;我们可以通过加入新机器身份验证解决问题。 一、问题现象 二、问题解决 2.1&#xf…

移动端h5自适应rem适配最佳方案

网页开发中&#xff0c;我们常用的单位有如下几个&#xff1a; px&#xff1a;像素固定&#xff0c;无法适配各分辨率的移动设备em: 该单位受父容器影响&#xff0c;大小为父元素的倍数rem: 因为html根元素大小为16px&#xff0c;所以默认 1rem 16px&#xff0c;rem只受根元素…

C语言程序设计P5-5【应用函数进行程序设计 | 第五节】—知识要点:变量的作用域和生存期

知识要点&#xff1a;变量的作用域和生存期 视频&#xff1a; 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 有一个一维数组&#xff0c;内放 10 个学生成绩&#xff0c;写一个函数&#xff0c;求出平均分、最高分和最低分。 任务要求用一个函数来完…

Jenkins与SonarQube持续集成搭建及坑位详解

Jenkins和SonarQube都是软件开发过程中常用的工具,它们在代码管理、构建、测试和质量管理方面发挥着重要作用。以下是关于Jenkins与SonarQube的作用及整合步骤环境搭建的详细解释: 一、Jenkins与SonarQube的作用 Jenkins: Jenkins是一个开源的持续集成和交付工具,它可以帮…

item2 for macos

安装Item2 brew install iterm2 查看终端类型 cat /etc/shells Mac OS X 10.15 已经将默认的shell从Bash换成了zsh&#xff0c;所以不用安装&#xff0c;10.15以前的可以使用下面的命令进行安装 brew install zsh 安装Oh My ZSH # curl sh -c "$(curl -fsSL https://ra…

[搜广推]王树森推荐算法——基于物体的协同过滤

基于物体的协同过滤 ItemCF 基于物体的协同过滤&#xff08;Item-Based Collaborative Filtering&#xff0c;简称ItemCF&#xff09;是一种经典的推荐系统算法 基本思想 量化用户对物品的兴趣&#xff0c;通过分析用户的行为来找到与目标物品相似的其他物品&#xff0c;然后…

3D 生成重建035-DiffRF直接生成nerf

3D 生成重建035-DiffRF直接生成nerf 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 本文提出了一种基于渲染引导的三维辐射场扩散新方法DiffRF&#xff0c;用于高质量的三维辐射场合成。现有的方法通常难以生成具有细致纹理和几何细节的三维模型&#xff0c;并且容易出…

计算机毕业设计Python+CNN卷积神经网络高考推荐系统 高考分数线预测 高考爬虫 协同过滤推荐算法 Vue.js Django Hadoop 大数据毕设

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

linux - 存储管理

1.了解硬件 -- 磁盘 硬盘有机械硬盘(HDD)和固态硬盘(SDD) 接下来&#xff0c;主要以机械磁盘为例(更具代表性&#xff0c;在linux系统层面&#xff0c;无论是机械磁盘还是固态硬盘&#xff0c;文件的读取和写入都iNode(索引节点)管理文件的元数据和实际数据块) 1.盘片&#x…