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文件)
文件权限对应关系(对应数字后面有用)
权限 | 对应数字 | 意义 |
---|---|---|
r | 4 | 可读 |
w | 2 | 可写 |
x | 1 | 可执行 |
前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这个数字。
权限 | 对应数字 | 意义 |
---|---|---|
r | 4 | 可读 |
w | 2 | 可写 |
x | 1 | 可执行 |
数字 | 权限 | 作用 |
---|---|---|
0 | - | 不能读,不能写,不能执行 |
1 | execute | 不能读,不能写,可执行 |
2 | write | 不能读,可写,不能执行 |
3 | 2+1 | 不能读,可写,可执行 |
4 | read | 可读,不能写,不能执行 |
5 | 4+1 | 可读,不能写,可执行 |
6 | 4+2 | 可读,可写,不能执行 |
7 | 4+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
② 保存退出
③ 重新登录用户则保存成功
本 篇 完 结 … …
持 续 更 新 中 … …
相关文章:
Linux之详谈——权限管理
目录 小 峰 编 程 编辑 一、权限概述 1、什么是权限 2、为什么要设置权限 3、Linux中的权限类别- 4、Linux中文件所有者 1)所有者分类(谁) 2)所有者的表示方法 ① u(the user who owns it)(属主权限&…...
第05章 13 椭球体张量可视化应用一则-神经束追踪
在神经束追踪(Tractography)中,椭球体张量(Ellipsoid Tensor)通常用于描述神经纤维的方向和扩散特性。这种技术广泛应用于磁共振成像(MRI)的扩散张量成像(DTI)数据中。VT…...
Celery
https://www.bilibili.com/video/BV1RGDEY5ERB 架构 简单任务 执行 包结构 本示例: app 添加任务 获取结果 配置延时任务 任务配置 beat 提交定时任务...
JavaScript系列(48)-- 3D渲染引擎实现详解
JavaScript 3D渲染引擎实现详解 🎮 今天,让我们深入探讨JavaScript的3D渲染引擎实现。通过WebGL和现代JavaScript技术,我们可以构建一个功能完整的3D渲染系统。 3D渲染基础概念 🌟 💡 小知识:3D渲染引擎的…...
Golang并发机制及CSP并发模型
Golang 并发机制及 CSP 并发模型 Golang 是一门为并发而生的语言,其并发机制基于 CSP(Communicating Sequential Processes,通信顺序过程) 模型。CSP 是一种描述并发系统中交互模式的正式语言,强调通过通信来共享内存…...
使用 Docker + Nginx + Certbot 实现自动化管理 SSL 证书
使用 Docker Nginx Certbot 实现自动化管理 SSL 证书 在互联网安全环境日益重要的今天,为站点或应用部署 HTTPS 已经成为一种常态。然而,手动申请并续期证书既繁琐又容易出错。本文将以 Nginx Certbot 为示例,基于 Docker 容器来搭建一个…...
游戏策划的分类
P3游戏策划分类 1.程序2.美术3.策划 程序:一般分为客户端程序和服务器程序 客户端程序一般负责游戏的前端画面表现 服务器程序负责游戏的后端运算 美术:角色原画,角色模型动作,场景原画,场景模型,UI设计&a…...
Edge-TTS在广电系统中的语音合成技术的创新应用
Edge-TTS在广电系统中的语音合成技术的创新应用 作者:本人是一名县级融媒体中心的工程师,多年来一直坚持学习、提升自己。喜欢Python编程、人工智能、网络安全等多领域的技术。 摘要 随着人工智能技术的快速发展,文字转语音(Te…...
python学opencv|读取图像(四十七)使用cv2.bitwise_not()函数实现图像按位取反运算
【0】基础定义 按位与运算:两个等长度二进制数上下对齐,全1取1,其余取0。按位或运算:两个等长度二进制数上下对齐,有1取1,其余取0。 按位取反运算:一个二进制数,0变1,1变0。 【1】…...
一文讲解Java中Object类常用的方法
在Java中,经常提到一个词“万物皆对象”,其中的“万物”指的是Java中的所有类,而这些类都是Object类的子类; Object主要提供了11个方法,大致可以分为六类: 对象比较: public native int has…...
【算法篇·更新中】C++秒入门(附练习用题目)
一.二分 1.二分查找 我们来看这样一道题: 有一个保证有序的数组a,它的长度为n。现在我们需要知道这个序列是否含有x。 数据范围:保证n<1e9 我们看到这道题之后,第一时间想到的就是暴力枚举了,可是我们发现直接枚举…...
面向对象编程 vs 面向过程编程
面向对象编程 vs 面向过程编程:深入解析这两种编程范式的区别 在当今软件开发领域,编程范式的选择对于项目的可维护性和可扩展性至关重要。面向对象编程(OOP)和面向过程编程(POP)是两种根本的编程思想。本…...
【Rust自学】16.2. 使用消息传递来跨线程传递数据
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 16.2.1. 消息传递 有一种很流行而且能保证安全并发的技术(或者叫机制ÿ…...
【四川乡镇界面】图层shp格式arcgis数据乡镇名称和编码2020年wgs84无偏移内容测评
本文将详细解析标题和描述中提到的IT知识点,主要涉及GIS(Geographic Information System,地理信息系统)技术,以及与之相关的文件格式和坐标系统。 我们要了解的是"shp"格式,这是一种广泛用于存储…...
人物传记之新月篇
相关故事链接(及时更新):Python的那些事第四篇:编程中的智慧之光控制结构-CSDN博客 Python的那些事第五篇:数据结构的艺术与应用-CSDN博客 目录 1. C语言程序:增强版加密与解密工具 2. Python程序&#x…...
TypeScript中的函数:类型安全与高级特性
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
DDD 和 TDD
领域驱动设计(DDD) DDD 是一种软件开发方法,强调通过与领域专家的密切合作来构建一个反映业务逻辑的模型。其核心思想是将业务逻辑和技术实现紧密结合,以便更好地解决复杂的业务问题。 DDD 的关键概念: 1. 领域模型 …...
【C语言分支与循环结构详解】
目录 ---------------------------------------begin--------------------------------------- 一、分支结构 1. if语句 2. switch语句 二、循环结构 1. for循环 2. while循环 3. do-while循环 三、嵌套结构 结语 -----------------------------------------end----…...
FaceFusion
文章目录 一、关于 FaceFusion预览 二、安装三、用法 一、关于 FaceFusion FaceFusion 是行业领先的人脸操作平台 github : https://github.com/facefusion/facefusion官方文档:https://docs.facefusion.io/Discord : https://discord.com/invite/facefusion-1141…...
图论——单源最短路的扩展应用
acwing1137.选择最佳路线 本题有两个解决思路 1.建立虚拟源点,连接虚拟源点和 w w w个可作为起点的点,边权为0,这样只需要从虚拟源点开始做一遍最短路算法便可。 2.反向建边,把所有的add(a,b,c)变成add(b,a,c),这样只…...
Linux shell脚本笔记-One
前言 本文主要汇总有关shell脚本常用的知识点,有时候使用忘记某些用法指令,特此汇总方便后续查阅。 一.shell脚本编写的头部定义: 定义的shell脚本头部有多种写法,具体根基实际系统结构处理,如下: #!/bin/sh ÿ…...
【C语言----函数详解】
目录 ----------------------------------------begin-------------------------------------- 引言 一、函数是什么 二、函数的定义和声明 1. 函数的定义 2. 函数的声明 三、函数的调用 四、函数参数传递 五、函数的返回值 六、递归函数 七、函数指针 八、总结 ---…...
QT交叉编译环境搭建(Cmake和qmake)
介绍一共有两种方法(基于qmake和cmake): 1.直接调用虚拟机中的交叉编译工具编译 2.在QT中新建编译套件kits camke和qmake的区别:CMake 和 qmake 都是自动化构建工具,用于简化构建过程,管理编译设置&…...
Zemax 中的屋脊棱镜建模
光学棱镜是一种透明的光学元件,其表面平坦且抛光,可以折射光线。最常见的棱镜类型是三棱镜,它有两个三角形底座和三个矩形或略呈梯形的表面。棱镜通常由玻璃或丙烯酸等材料制成。当光线以一定角度进入棱镜时,它会在穿过棱镜时发生…...
CUDA学习-内存访问
一 访存合并 1.1 说明 本部分内容主要参考: 搞懂 CUDA Shared Memory 上的 bank conflicts 和向量化指令(LDS.128 / float4)的访存特点 - 知乎 1.2 share memory结构 图1.1 share memory结构 放在 shared memory 中的数据是以 4 bytes(即 32 bits)作为 1 个 word,依…...
Nginx 开发总结
文章目录 1. Nginx 基础概念1-1、什么是 Nginx1-2、Nginx 的工作原理1-3、Nginx 的核心特点1-4、Nginx 的常见应用场景1-5、Nginx 与 Apache 的区别1-6、 Nginx 配置的基本结构1-7、Nginx 常见指令 2. Nginx 配置基础2-1、Nginx 配置文件结构2-2、全局配置 (Global Block)2-3、…...
目标跟踪之sort算法(3)
这里写目录标题 1 流程1 预处理2 跟踪 2 代码 参考:sort代码 https://github.com/abewley/sort 1 流程 1 预处理 1.1 获取离线检测数据。1.2 实例化跟踪器。2 跟踪 2.1 轨迹处理。根据上一帧的轨迹预测当前帧的轨迹,剔除到当前轨迹中为空的轨迹得到当前…...
C++/stack_queue
目录 1.stack 1.1stack的介绍 1.2stack的使用 练习题: 1.3stack的模拟实现 2.queue的介绍和使用 2.1queue的介绍 2.2queue的使用 2.3queue的模拟实现 3.priority_queue的介绍和使用 3.1priority_queue的介绍 3.2priority_queue的使用 欢迎 1.stack 1.1stack…...
小程序电商运营内容真实性增强策略及开源链动2+1模式AI智能名片S2B2C商城系统源码的应用探索
摘要:随着互联网技术的不断发展,小程序电商已成为现代商业的重要组成部分。然而,如何在竞争激烈的市场中增强小程序内容的真实性,提高用户信任度,成为电商运营者面临的一大挑战。本文首先探讨了通过图片、视频等方式增…...
「Unity3D」在Unity中使用C#控制显示Android的状态栏
Unity打包的Android默认都是全屏,如果想要在真机上显示状态栏,就需要额外设置,有两种方式: 第一种,使用Android的Java代码去控制,然后以插件的方式放到Unity中,被C#调用。第二种,使…...
基于51单片机和ESP8266(01S)、LCD1602、DS1302、独立按键的WiFi时钟
目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、延时2、定时器03、串口通信4、DS13025、LCD16026、独立按键 四、主函数总结 系列文章目录 前言 之前做了一个WiFi定时器时钟,用八位数码管进行显示,但是定时器时钟的精度较低࿰…...
AI 浪潮席卷中国年,开启科技新春新纪元
在这博主提前祝大家蛇年快乐呀!!! 随着人工智能(AI)技术的飞速发展,其影响力已经渗透到社会生活的方方面面。在中国传统节日 —— 春节期间,AI 技术也展现出了巨大的潜力,为中国年带…...
STM32 LED呼吸灯
接线图: 这里将正极接到PA0引脚上,负极接到GND,这样就高电平点亮LED,低电平熄灭。 占空比越大,LED越亮,占空比越小,LED越暗 PWM初始化配置 输出比较函数介绍: 用这四个函数配置输…...
机器学习day4
自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测 import numpy as np import torch import torch.nn as nn import torch.optim as optimizer import matplotlib.pyplot as pltclass1_points np.array([[2.1, 1.8],[1.9, 2…...
《哈佛家训》
《哈佛家训》是一本以教育为主题的书籍,旨在通过一系列富有哲理的故事和案例,传递积极的人生观、价值观和教育理念。虽然它并非直接由哈佛大学官方出版,但其内容深受读者喜爱,尤其是在家庭教育和个人成长领域。 以下是《哈佛家训…...
为什么redis会开小差?Redis 频繁异常的深度剖析与解决方案
文章目录 导读为什么redis会开小差?1.连接数过多2.bigkey3.慢命令操作4.内存策略不合理5.外部数据双写一致性6.保护机制未开启7. 数据集中过期8. CPU饱和9. 持久化阻塞10. 网络问题结论 导读 提起分布式缓存,想必大多数同学脑海中都会浮出redis这个名字…...
window中80端口被占用问题
1,查看报错信息 可以看到在启动项目的时候,8081端口被占用了,导致项目无法启动。 2,查看被占用端口的pid #语法 netstat -aon|findstr :被占用端口#示例 netstat -aon|findstr :8080 3,杀死进程 #语法 taikkill /pid…...
< OS 有关 > 阿里云:轻量应用服务器 的使用 :轻量化 阿里云 vpm 主机
原因: < OS 有关 > 阿里云:轻量应用服务器 的使用 :从新开始 配置 SSH 主机名 DNS Tailscale 更新OS安装包 最主要是 清除阿里云客户端这个性能杀手-CSDN博客 防止 I/O 祸害系统 操作: 查看进程&#x…...
解决报错“The layer xxx has never been called and thus has no defined input shape”
解决报错“The layer xxx has never been called and thus has no defined input shape”(这里写自定义目录标题) 报错显示 最近在跑yolo的代码时遇到这样一个错误,显示“the layer {self.name} has never been called”.这个程序闲置了很久,每次一遇到…...
Microsoft Visual Studio 2022 主题修改(补充)
Microsoft Visual Studio 2022 透明背景修改这方面已经有很多佬介绍过了,今天闲来无事就补充几点细节。 具体的修改可以参考:Microsoft Visual Studio 2022 透明背景修改(快捷方法)_material studio怎么把背景弄成透明-CSDN博客文…...
PyCharm接入DeepSeek实现AI编程
目录 效果演示 创建API key 在PyCharm中下载CodeGPT插件 配置Continue DeepSeek 是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的 AI 模型。DeepSeek-V3 是 DeepSeek 公司推出的最新一代 AI 模型。其前身是 DeepSeek-V2.5,经过持续的…...
C++ 包装器与绑定器的应用之回调函数的实现
回调函数的实现 在消息队列和网络库的框架中,当接收到消息(报文)时,回调用户自定义的函数对象,把消息(报文)参数传给它,由它决定如何处理。 queue参考文章:C queue(STL queue&…...
一文读懂DeepSeek-R1论文
目录 论文总结 摘要 1. 引言 1.1. 贡献 1.2. 评估结果总结 2. 方法 2.1. 概述 2.2. DeepSeek-R1-Zero:在基础模型上进行强化学习 2.2.1. 强化学习算法 2.2.2. 奖励建模 2.2.3. 训练模板 2.2.4. DeepSeek-R1-Zero 的性能、自我进化过程和顿悟时刻 2.3. …...
文献阅读 250128-Tropical forests are approaching critical temperature thresholds
Tropical forests are approaching critical temperature thresholds 来自 <Tropical forests are approaching critical temperature thresholds | Nature> 热带森林正在接近临界温度阈值 ## Abstract: The critical temperature beyond which photosynthetic machinery…...
【python】python基于机器学习与数据分析的二手手机特性关联与分类预测(源码+数据集)【独一无二】
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 python基于机器学习与数据分析的二手手机特性关联与…...
构建可靠的时间序列预测模型:数据泄露检测、前瞻性偏差消除与因果关系验证
在时间序列分析领域中,存在多种可能影响分析结果有效性的技术挑战。其中,数据泄露、前瞻性偏差和因果关系违反是最为常见且具有显著影响的问题。 数据泄露:隐蔽的系统性错误 数据泄露是指在预测时理论上无法获取的信息,通过某种…...
Spring Boot - 数据库集成05 - 集成MongoDB
Spring Boot集成MongoDB 文章目录 Spring Boot集成MongoDB一:使用前的准备1:依赖导入 & 配置2:实体类创建 二:核心 - MongoRepository三:核心 - MongoTemplate1:集合操作2:文档操作(重点)3&…...
计算机网络之运输层
本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》 04 传输层 在网上看到其他人做了相关笔记,就不再多余写了,直接参考着学习吧。 王道考研 计算机网络笔记 第五章:传输层_王道计算机网络传输层_Baret-H的博客-CSDN博…...
DeepSeekMoE:迈向混合专家语言模型的终极专业化
一、结论写在前面 论文提出了MoE语言模型的DeepSeekMoE架构,目的是实现终极的专家专业化(expert specialization)。通过细粒度的专家分割和共享专家隔离,DeepSeekMoE相比主流的MoE架构实现了显著更高的专家专业化和性能。从较小的2B参数规模开始&#x…...
知识库管理驱动企业知识流动与工作协同创新模式
内容概要 知识库管理在现代企业中扮演着至关重要的角色,其价值不仅体现在知识的积累,还在于通过优质的信息流动促进协作与创新。有效的知识库能够将分散的信息整合为有序、易于访问的资源,为员工提供实时支持,进而提升整体工作效…...