Linux之详谈——权限管理

目录

 小  峰 编 程   ​编辑

一、权限概述

1、什么是权限

2、为什么要设置权限

3、Linux中的权限类别-

4、Linux中文件所有者

1)所有者分类(谁)

2)所有者的表示方法

① u(the user who owns it)(属主权限)

② g(other users in the file’s group)(属组权限)

③ o(other user not in the file’s group)(其他权限)

④ root用户(超级管理员)

二、普通权限管理

1、ls查看文件权限

2、文件权限详解

3、设置文件/文件夹权限

① 字母形式(对应前面提到的u g o,r w x的表示方法)

② 数字形式

③ 练习题

4、特别说明

三、属主(zhu)与属组(zu)设置

1、什么是属主与属组?

2、为什么要修改属主与属组?

3、chown修改文件的属主

3、chgrp修改文件的属组

4、chown同时修改属主与属组(重点)

四、特殊权限(扩展)

1、设置位S(SetUid)

2、沾滞位T (sticky bit)

五、ACL访问控制

1、基本命令

2、getfacl命令

3、setfacl命令

六、umask(扩展)

1、什么是umask

2、umask值

3、修改umask值


   程   

一、权限概述

1、什么是权限

​ 在多用户计算机系统的管理中,权限指某个特定的用户具有特定的系统资源使用权利

在Linux 中分别有执行权限:

权限针对文件权限针对目录
读    r表示可以查看文件内容;cat表示可以(ls)查看目录中存在的文件名称
写   w表示可以更改文件的内容;vim 修改,保存退出表示是否可以删除目录中的子文件或者新建子目录(rm/touch/mkdir)
执行x表示是否可以开启文件当中记录的程序,一般指二进制文件(.sh)表示是否可以进入目录中(cd)

注:一般给予目录读权限(r)时,也将会给其执行权限(x),属于“套餐”组合。如下:

[root@wcf1 ~]# ls -ld a
drwxr-xr-x. 2 root root 6 Jan 26 16:37 a

2、为什么要设置权限

  • 服务器中的数据价值
  • 员工的工作职责和分工不同
  • 应对自外部的攻击
  • 内部管理的需要

3、Linux中的权限类别-

Linux 系统一般将文件权限分为3 类:read(读)、write(写)、execute(执行)

谁对文件有读,写,执行的权限呢?

>>user(属主) group(属组) other(其他用户)

4、Linux中文件所有者

1)所有者分类(谁)

对于文件的所有者,分为3类: user(属主) group(属组) other(其他用户)

user(属主)文件的创建者或拥有者,换句话说,某个账户对这个文件有的权限。

group(属组)文件所属的用户组,换句话或,某个用户组对这个文件有的权限。

other(其他用户)除了上面提到的属主和属组之外的所有用户,对这个文件有的权限

举例:爱情公寓拆迁,拆迁款按照政策,分配如下:一半给张伟,另一半由爱情公寓3601和3602室的其余的伙伴平分。

2)所有者的表示方法

① u(the user who owns it)(属主权限)

用u表示,文件所有者,默认为文档的创建者

② g(other users in the file’s group)(属组权限)

用g表示,在文件所属组(默认是创建文件的用户的主组)里的用户

③ o(other user not in the file’s group)(其他权限)

用o表示,既不是文件的创建者,也不在文件属组里的用户,称为其他人

注意:某些资料上会提到linux ugo权限,所谓ugo,就是User, Group,Other三个单词的首字母。就指属主,主组,其他三种权限

ugo等于u+g+o

a(all)等于u+g+o

我们后面设置文件权限的时候,会用到。

④ root用户(超级管理员)

​ 在Linux 中,还有一个神一样的用户,这就是root 用户,因为在所有用户中它拥有最大的权限 ,可以管理着普通用户。因此以后在设置文档的权限的时候不必考虑root 用户

二、普通权限管理

1、ls查看文件权限

​ 要设置权限,就需要知道文件的一些基本属性和权限的分配规则。在Linux 中,ls 命令常用来查看文档的属性,用于显示文件的文件名和相关属性。ls命令我们之前学过,用于查看文件信息,这里我们使用之前提到过的一个用法,ll

用法一:ll
示例代码:
#ll
含义:查看当前文件夹下的所有目录和文件的详细信息

2、文件权限详解

Linux 中存在三类身份:属主(owner拥有者) 属组(group用户组) 其他用户(others)

各自有不同的权限,对于一个文档来说,其权限具体分配如下:

linux一共有7种文件类型,分别如下:

-:普通文件 d:目录文件    l: 软链接(类似Windows的快捷方式)

(下面四种是特殊文件)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如猫等串口设备)

s:套接口文件/数据接口文件(例如启动一个MySql服务器时会产生一个mysql.sock文件)

文件权限对应关系(对应数字后面有用)

权限对应数字意义
r4可读
w2可写
x1可执行
前10位字符表示含义:
第1位:表示文件类型
第2-4位:表示文件所有者的权限情况,第2位r表示读权限,第3位w表示写权限,第4位x表示执行
权限。
第5-7位:表示与文件所有者同组的用户的权限情况,第5位r表示读权限,第6位-表示不可写,第
7位x表示执行权限。
第8-10位:表示除了组外的其他用户权限情况,第8位r表示读权限,第9位-表示不可写,第10位
x表示执行权限。

前10位字符表示含义:

第1位:表示文件类型

第2-4位:表示文件属主(所有者)的权限情况

第5-7位:表示与文件属组(用户组)的用户的权限情况

第8-10位:表示其他(除了属主和属组之外的其他用户)权限情况

3、设置文件/文件夹权限

命令:chmod

语法:# chmod [选项] 权限模式 文档

作用:增加或者减少当前文件所有者的权限(注意,不能改变所有者,只能改变现有所有者的权限)

常用选项:-R:递归设置权限 (当文档类型为文件夹的时候

权限模式:就是该文档需要设置的权限信息

文档:可以是文件,也可以是文件夹,可以是相对路径也可以是绝对路径。

注意点如果想要给文档设置权限,操作者要么是root 用户,要么就是文档的所有者。

① 字母形式(对应前面提到的u g o,r w x的表示方法)

下面我所使用的例子都是在普通用户下进行的!

用法一:chmod -R 要增加的权限 文件名
示例代码:
#chmod -R u+x test
含义:对于test文件,给 属主 增加 执行 权限

用法二:chmod -R 多个要增加的权限 文件名
示例代码:
#chmod -R g+x,o+x test
含义:对于test文件,给 属组 增加 执行 权限,给 其他 增加 执行权限。
注意:同时改变多个对象的权限,中间使用“逗号“分割。

用法三:chmod -R 要减少的权限 文件名
示例代码:
#chmod -R o-x test
含义:对于test文件,给 其他 减少 执行权限。

用法四:chmod -R 要赋予的权限 文件名
示例代码:
#chmod -R u=rwx,g=rwx,o=rwx test
含义:对于test文件,给属主,属组,其他,都赋予读、写、执行权限

用法五:chmod -R 要赋予的权限 文件夹
示例代码:
#chmod -R a=rwx test
含义:对于test文件夹,给所有用户(属主,属组,其他),都赋予读、写、执行权限

如果只想给属主和属组赋予读写权限,要怎么写? 答:u+rw,g+rw或者ug+rw。

如果同时去掉属组其他的写权限,要怎么写? 答:g-w,o-w或者go-w。

总结:

权限设置要考虑的因素:
首先:给谁设置?u    可以给属主设置权限g    可以给属组设置权限o    可以给其他用户设置权限ugo  给所有用户设置权限(主+组+其他)a    给所有用户设置权限第二:怎么设置?+    添加权限-    减少权限=    赋予权限第三:增加减少或者赋予什么权限?r    读w    写x    执行

相关参数总结:

字母选项作用
u(谁)user属主
g(谁)group属组
o(谁)other其他用户
a(谁)all所有人(包含ugo)
+(作用)增加作用
-(作用)移除作用
=(作用)等于赋值作用
r(权限)read可读权限
w(权限)write可写权限
x(权限)execute可执行权限
-(权限)-没有任何权限

注:

1)如果同时设置多个身份的权限时候,每个身份之间需要通过英文逗号分开。

例如:

#chmod -R u=rwx,g=rwx,o=rwx quanxian.txt

2)在权限设置中,如果有两部分权限一样则可以合在一起写

例如:
# chmod u=rwx,g=rwx
等价于:
# chmod ug=rwx

② 数字形式

​ 经常会在技术网站上看到类似于# chmod 777 a.txt 这样的命令,这种形式称之为数字形式权限。

文件权限与数字的对应关系,我们会发现没有7这个数字。

权限对应数字意义
r4可读
w2可写
x1可执行

数字权限作用
0-不能读,不能写,不能执行
1execute不能读,不能写,可执行
2write不能读,可写,不能执行
32+1不能读,可写,可执行
4read可读,不能写,不能执行
54+1可读,不能写,可执行
64+2可读,可写,不能执行
74+2+1可读,可写,可执行

技巧:不要背上面的表格,只要记住R,W,X对应4,2,1,之后做10以内加法

权限与数字对应详解

用法六:chmod -R 要赋予的权限(数字形式) 文件名
示例代码:
#chmod -R 765 quanxian.txt
含义:对于quanxian.txt文件,给属主所有权限,属组读写权限,其他读和执行权限
注意:
全部权限:7 = r+w+x = 4 + 2 + 1
读写权限:6 = r+w = 4 + 2
读和执行:5 = r+x = 4 + 1
综上所述,u=7,g=6,o=5

问题:用超级管理员设置文档的权限命令是# chmod -R 731 shop,请问这个命令有没有什么不合理的地方?

分析:

所有者权限:7 = 4 + 2 + 1 = 读 + 写 + 执行
同组用户权限:3 = 2 + 1 = 写 + 执行
其他用户权限:1 = 执行问题在权限731中的3权限,3表示写+执行权限,但是写又必须需要能打开之后才可以写,因此必须需要具备
可读权限,因此此权限设置不合理。注:实际工作中,各位小伙伴在设置权限时一定不要设置这种"奇葩权限",一般情况下,单独出现2、3的权
限数字一般都是有问题的权限。

一般linux系统中,不允许出现777的权限。

③ 练习题

1)使用root 用户设置文件夹/root/shop 的权限为:属主全部权限,属组拥有读和执行权限,其他用户没有权限,请使用数字权限的形式设置

rwx=7,rx=4+1=5,0
# chmod -R 750 /root/shop

2)请置文件/root/readme.txt 的权限,权限要求为:

​ 属主拥有全部权限,属组要求可以读写,其他用户只读,要求使用数字形式;

rwx=7,rw=4+2=6,r=4
# chmod 764 /root/readme.txt

3)请设置/root/email.doc权限,权限要求只有属主可以读写,除此之外任何人没有权限;

rw=6,0,0
# chmod 600 /root/email.doc

4、特别说明

在Linux 中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限,如果有才可以删除(同时必须具备执行权限)。

权限针对文件权限针对目录
读r表示可以查看文件内容表示可以(ls)查看目录中存在的文件名称
写w表示可以更改文件的内容表示是否可以删除目录中的子文件或者新建子目录(rm/touch/mkdir)
执行x表示是否可以开启文件当中记录的程序,一般指二进制文件(.sh)表示是否可以进入目录中(cd)

三、属主(zhu)与属组(zu)设置

1、什么是属主与属组?

属主:所属的用户,文档所有者,这是一个账户,这是一个人

属组:所属的用户组,这是一个组。

基本语法:

# ls -l查看文档属主与属组  或者 在这里使用 ll 命令也行

这两项信息在文档创建的时候会使用创建者的信息(用户名、用户所属的主组名称)。

思考:为什么test的属主和属组默认都是root?

2、为什么要修改属主与属组?

举例:

​ 一个财务表格,以前由胡一菲进行更新,她有读写权限,现在胡一菲去阿拉善沙漠找曾老师了,改权限没用,需要把属主改成诸葛大力,由诸葛大力更新。

3、chown修改文件的属主

基本语法:

# chown [-R] 新文档拥有者名称 文档路径

作用:更改文档的所属用户(change owner)

选项:-R 代表递归修改文件的属主

示例代码1:将test文档属主更改为xiaofeng

#touch test
#ll test#chown xiaofeng test
将test文件的属主设置为xiaofeng#ll test

示例代码2:将a文件夹的拥有者更改为xiaofeng

#mkdir a
#ll
#chown xiaofeng a
将a文件夹的属主设置为xiaofeng#ll

3、chgrp修改文件的属组

基本语法:

# chgrp [-R] 新文档组名称 文档的路径

作用:更改文档的所属用户组(change group)

示例代码1:将test文档所属组修改为hr

检查是否有这个账户,如果没有,需要新建

示例代码2:将a文档所属组修改为hr

4、chown同时修改属主与属组(重点)

问题:如何通过一个命令实现既可以更改所属的用户,也可以修改所属的用户组呢?

答:使用 chown 命令。

基本语法:

# chown [-R] username:groupname 文档路径

示例代码:将test文件的拥有者与所属组都更改为root。

#ll test
#chown root:root test
将test文件的属主和属组同时设置为root
#ll test

特别注意:
一般来说,这个指令(chown)只有是由系统管理者(root)所使用,普通用户没有权限可以改变别人的档案
拥有者,也没有权限可以将自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。

四、特殊权限(扩展)

1、设置位S(SetUid)

作用:为了让一般使用者临时具有该文件所属主/组的执行权限

例如:/usr/bin/passwd在执行它的时候需要去修改/etc/passwd和/etc/shadow等文件,这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码,该怎么办呢?

答:可以临时让他们具有root的权限,而这个s权限就是用来完成这个特殊任务的。s权限只能应用在二进制的可执行文件上。

示例代码:不想让普通用户修改自己的密码

> 注:which命令可以用于查看二进制可执行文件所在位置

去除s权限,基本语法:

#which passwd
#ll /usr/bin/passwd 
#chmod u-s /usr/bin/passwd 
或者
#chmod 0755 /usr/bin/passwd  去除passwd程序的s权限
#ll /usr/bin/passwd 

测试普通用户:

注:0755最前面的0表示不使用任何特殊权限,如果想使用数字设置特殊权限,可以使用4表示设置S位

2、沾滞位T (sticky bit)

命令:chmod

语法:

# chmod [选项] 文件夹

作用:只允许文件的创建者和root用户删除文件

常用选项:o+t 添加粘滞位、​ o-t 去掉粘滞位。

用法:chmod o+t 目录名
示例代码:
#chmod o+t 
含义:给目录增加粘滞位权限。

举例:

​ 公司多个部门公用一个文件夹work,为了让所有人都能访问,work文件夹赋予了777权限,用户root新建了一个文件root.txt,发现被别人删除了。我们希望root建立的文件,只有root自己可以删。

​ 步骤1:root用户下操作

​ root用户新建文件夹/work,并且新建两个文件root.txt和root1.txt,赋予/work文件夹和下面的文件777权限

#mkdir /work
#cd /work
#touch root.txt
#touch root1.txt
#chmod -R 777 /work
#ll -d /work

​ 步骤2: xiaofeng用户下操作

​ 在没有设置粘滞位的时候,xiaofeng可以删除root创建的文件。

cd /work
ll -d /work
ll
rm -rf root.txt
ll

​ 步骤3:root用户下操作:

​ 给/work文件夹添加粘滞位

#ll -d /work/
#chmod o+t /work  或者  chmod 1xxx /work
#ll -d /work/

​ 步骤4:xiaofeng用户下操作​ 发现添加粘滞位后,无法删除root2.txt文件

#ll -d /work
#ll
#rm -rf root1.txt

​ 步骤5:root用户下操作

​ 去掉/work文件夹的取消粘滞位

#ll -d /work/
#chmod o-t /work  或者  chmod 0xxx /work
#ll -d /work/

​ 步骤6:xiaofeng用户下操作​ wangwu用户下,发现又可以删除了

#cd /work/
#rm -rf root1.txt
#ll

五、ACL访问控制

问题:我们学过的所有者身份包含哪些?

答案:ugo,属主,属组,其他。

问题:我们学过的文件权限包含哪些?

答案:rwx,读写执行,特殊s,t

​ ACL,是 Access Control List(访问控制列表)的缩写,在 Linux 系统中, ACL 可实现对单一用户设定访问文件的权限。

1、基本命令

getfacl命令 文件名或者路径:查看文件的ACL策略及权限

setfacl命令  : 给文件针对某个用户或者某个组来增加(设置)ACL策略

2、getfacl命令

3、setfacl命令

  • -m : 修改acl策略
  • -x :去掉某个用户或者某个组的权限
  • -b :删除所有的acl策略
  • -R :递归,通常用在文件夹
  • mask:mask定义除other和所有人(拥有者)外的最大权限
setfacl -m u:用户名:rwx /usr/local/shichangbu  给单个用户单独加权限
setfacl -m g:用户组名:rwx /usr/local/shichangbu   给单个组单独加权限setfacl -x u:用户 /usr/local/shichangbu  去掉某个用户的权限
setfacl -x g:组名 /usr/local/shichangbu    去掉某个组的acl策略setfacl -b -R /usr/local/shichangbu  删除所有的acl策略,递归子文件例如:
setfacl -m u:user01:rw   file1 针对于单个用户给可读可写权限
setfacl -m g:sysadmin:rw file1 针对于单个组给可读可写权限

示例代码1:给newuser01用户单独在市场部文件夹上增加rx权限

#mkidr /shichangbu
#cd /shichangbu
#touch file{1..5}.txt
#chown -R root:hr /shichangbu
递归设置shichangbu文件夹的属主是root,属组是hr
#getfacl /shichangbu#useradd newuser01
#passwd newuser01 #setfacl -m u:newuser01:rx -R /shichangbu
单独设置newuser01对于shichangbu文件夹的rx权限,并且递归包含所有子文件#getfacl /shichangbu
查看/shichangbu文件夹的ACL权限

验证newuser01用户对于file1文件只有读权限

示例代码2:给newusergrp组在市场部文件夹上增加rx权限,递归所有子文件

#groupadd hr
#setfacl -m g:hr:rx -R /shichangbu
单独设置hr组对于shichangbu文件夹的rx权限,并且递归包含所有子文件#getfacl /shichangbu/

setfacl命令解释

示例代码3:删除所有acl策略

六、umask(扩展)

1、什么是umask

umask表示创建文件时的默认权限(即创建文件时不需要设置而天生的权限)

例如:

root用户下,touch a ,文件a的默认权限是644

普通用户下,touch b ,文件b的默认权限是664

644和664我们并没有设置,其中的关键因素就是umask

最大默认权限:文件666、文件夹777

2、umask值

可以使用命令umask来查看umask的值:

基本语法:

# umask

注:0022中第一位0代表特殊权限位,可以不设置。

umask的默认值,在root和普通用户下是不一样的,分别是022和002

分析:

结合上述的举例得知:

默认权限=最高权限-umask( 644=666-022 // 664=666-002 )

但是:

当umask为011,创建文件的默认权限应该是655,但是实际运行的时候默认权限是 666

666 ->: rw-rw-rw-

011 ->: -----x--x

相减得:

666 ->: -rw-rw-rw-

:这个特殊情况仅出现在文件,因为文件[二进制文件除外]没有x执行权限), 所以,查看文件的umask时我们要特别注意是否有奇数位(x表示1)

3、修改umask值

umask + 数值修改当前用户的umask 如:# umask 044

不过这样设置的umask会在用户重新登录的时候恢复原来的值,我们可以把修改的umask保存在~/.bashrc

操作步骤:

#vim ~/.bashrc
① 在文件末尾添加umask 044
② 保存退出 
③ 重新登录用户则保存成功

 本   篇   完   结   …  …


持     续     更     新     中   …    … 

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

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

相关文章

私有包上传maven私有仓库nexus-2.9.2

一、上传 二、获取相应文件 三、最后修改自己的pom文件

记录 | 基于Docker Desktop的MaxKB安装

目录 前言一、MaxKBStep 1Step2 二、运行MaxKB更新时间 前言 参考文章:如何利用智谱全模态免费模型,生成大家都喜欢的图、文、视并茂的文章! MaxKB的Github下载地址 参考视频:【2025最新MaxKB教程】10分钟学会一键部署本地私人专属…

4.flask-SQLAlchemy,表Model定义、增删查改操作

介绍 SQLAlchemy是对数据库的一个抽象 开发者不用直接与SQL语句打交道 Python对象来操作数据库 SQLAlchemy是一个关系型数据库 安装 flask中SQLAlchemy的配置 from flask import Flask from demo.user_oper import userdef create_app():app Flask(__name__)# 使用sessi…

jemalloc 5.3.0的tsd模块的源码分析

一、背景 在主流的内存库里,jemalloc作为android 5.0-android 10.0的默认分配器肯定占用了非常重要的一席之地。jemalloc的低版本和高版本之间的差异特别大,低版本的诸多网上整理的总结,无论是在概念上和还是在结构体命名上在新版本中很多都…

【Elasticsearch】Elasticsearch的查询

Elasticsearch的查询 DSL查询基础语句叶子查询全文检索查询matchmulti_match 精确查询termrange 复合查询算分函数查询bool查询 排序分页基础分页深度分页 高亮高亮原理实现高亮 RestClient查询基础查询叶子查询复合查询排序和分页高亮 数据聚合DSL实现聚合Bucket聚合带条件聚合…

DeepSeek R1有什么不同

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

macbook安装go语言

通过brew来安装go语言 使用brew命令时,一般都会通过brew search看看有哪些版本 brew search go执行后,返回了一堆内容,最下方展示 If you meant "go" specifically: It was migrated from homebrew/cask to homebrew/core. Cas…

文本左右对齐

hello 大家好!今天开写一个新章节,每一天一道算法题。让我们一起来学习算法思维吧! function fullJustify(words, maxWidth) {// 用于存储最终排版好的每一行文本const result [];// 用于遍历单词数组的索引,初始化为 0let i 0;…

Oracle 创建用户和表空间

Oracle 创建用户和表空间 使用sys 账户登录 建立临时表空间 --建立临时表空间 CREATE TEMPORARY TABLESPACE TEMP_POS --创建名为TEMP_POS的临时表空间 TEMPFILE /oracle/oradata/POS/TEMP_POS.DBF -- 临时文件 SIZE 50M -- 其初始大小为50M AUTOEXTEND ON -- 支持…

树状数组讲解

文章目录 1395.统计作战单位数 树状数组b站博主 灵神博主 tree数组:Tree[i] 存储的是原本的数组中num[i - (i&-i)1]到nums[i]的和 更新的时候,num[i[更新,逐一修改num[i(i & -i)] 307.区间和检索-数组可修改 题目实战 总的代码&#…

PostGIS笔记:PostgreSQL中表、键和索引的基础操作

创建、查看与删除表 在数据库中创建一个表,使用如下代码: create table streets (id serial not null primary key, name varchar(50));这里的表名是streets,id是主键所以非空,采用serial数据类型,这个数据类型会自动…

【JavaEE进阶】图书管理系统 - 壹

目录 🌲序言 🌴前端代码的引入 🎋约定前后端交互接口 🚩接口定义 🍃后端服务器代码实现 🚩登录接口 🚩图书列表接口 🎄前端代码实现 🚩登录页面 🚩…

大数据学习之SCALA分布式语言三

7.集合类 111.可变set一 112.可变set二 113.不可变MAP集合一 114.不可变MAP集合二 115.不可变MAP集合三 116.可变map一 package com . itbaizhan . chapter07 //TODO 2. 使用 mutable.Map 前导入如下包 import scala . collection . mutable // 可变 Map 集合 object Ma…

C++:多继承习题3

题目内容: 声明一个时间类Time,时间类中有3个私有数据成员(Hour,Minute,Second)和两个公有成员函数(SetTime和PrintTime)。要求: (1) SetTime根据传递的3个参数为对象设置时间; &a…

14-6-2C++STL的list

(一&#xff09;list对象的带参数构造 1.list&#xff08;elem);//构造函数将n个elem拷贝给本身 #include <iostream> #include <list> using namespace std; int main() { list<int> lst(3,7); list<int>::iterator it; for(itlst.begi…

Elasticsearch——Elasticsearch性能优化实战

摘要 本文主要介绍了 Elasticsearch 性能优化的实战方法&#xff0c;从硬件配置优化、索引优化设置、查询方面优化、数据结构优化以及集群架构设计等五个方面进行了详细阐述&#xff0c;旨在帮助读者提升 Elasticsearch 的性能表现。 1. 硬件配置优化 升级硬件设备配置一直都…

Linux进程调度与等待:背后的机制与实现

个人主页&#xff1a;chian-ocean 文章专栏-Linux 前言&#xff1a; 当一个进程发起某种操作&#xff08;如I/O请求、信号、锁的获取等&#xff09;&#xff0c;但该操作需要的资源暂时不可用时&#xff0c;进程会被操作系统挂起&#xff0c;进入“等待队列”或“阻塞状态”。…

【教学类-89-02】20250128新年篇02——姓名藏头对联(星火讯飞+Python,五言对联,有横批)

背景需求&#xff1a; 过年了&#xff0c;我想用幼儿的名字写对联&#xff0c;但是我根本不会写&#xff0c;于是尝试让AI来写。 1.我班的孩子的名字都是2字和3字的 2.惊喜发现&#xff0c;AI它很快就能生成带名字的对联 但是观察发现&#xff0c;如果是二个名字的对联&#…

Node.js基础

浏览器知识 浏览器 个浏览器都内置了DOM、BOM等API函数&#xff0c;供浏览器中的Javascript调用。 每个浏览器都有对应的JavaScript解析引擎。 浏览器中的JavaScript环境 V8引擎负责解析和执行JavaScript代码 内置API是由运行环境提供的特殊接口&#xff0c;只能在所属的运…

【漫话机器学习系列】066.贪心算法(Greedy Algorithms)

贪心算法&#xff08;Greedy Algorithms&#xff09; 贪心算法是一种逐步构建解决方案的算法&#xff0c;每一步都选择当前状态下最优的局部选项&#xff08;即“贪心选择”&#xff09;&#xff0c;以期望最终获得全局最优解。贪心算法常用于解决最优化问题。 核心思想 贪心选…