引入

Linux 作为多用户系统,权限是系统安全的第一道防线。不合理的权限设置可能导致:

  • 敏感文件泄露(如数据库密码被读取)
  • 误删核心数据(目录写权限失控)
  • 权限漏洞被利用(如 SUID 提权攻击)

掌握权限管理,既能守护系统安全,又能高效实现团队协作(如共享目录权限配置)。本文将权限知识按 模块分组,附原理、命令、实战案例,帮你快速构建知识体系。

序章:权限管理速查表(按知识模块分组)

为了让你快速定位知识点,先奉上「权限地图」—— 核心模块按逻辑分组,点击分组标题可跳转至对应章节:

序号章节标题核心内容(知识点)
1为什么Linux需要权限管理?多用户系统的安全逻辑、权限管理的核心目标(限制资源访问范围)
2权限的三大要素:“谁"能对"什么"做"什么”访问者分类(u/g/o)、文件类型(d/-/l 等)、文件 vs 目录的权限差异(r/w/x 含义)
3权限的表示方法:从字符到数字的 “密码本”字符权限串解析(10 位含义)、八进制转换(4/2/1 计算逻辑)
4权限操作实战:从查看、修改到深度配置chmod(字符 / 八进制方式)、chown/chgrp(所有者 / 组修改)、umask(默认权限控制)
5权限进阶:特殊权限与深度安全配置SUID(特权执行)、SGID(组继承)、Sticky Bit(防误删)的作用、标志、设置方法
6权限排错:从"Permission denied"到"问题解决"排错四步法(身份→权限→父目录→提权)、实战案例(如目录访问权限不足)
7总结:权限管理的"黄金法则" 最小权限原则、目录 w 权限谨慎、敏感文件锁死、组管理实践、定期权限审计(find 命令)

一、为什么Linux需要权限管理?

在Windows系统中,我们习惯了"以管理员身份运行",但Linux的设计哲学完全不同——它假定系统中同时存在多个用户(可能是真实用户,也可能是服务进程),且每个用户的操作需要被严格限制。

举个例子:你的服务器上同时运行着Web服务、数据库服务和邮件服务。如果没有权限限制,Web服务进程可能误删数据库文件,普通用户可能随意修改系统配置——这显然是灾难。

权限管理的核心目标是:确保每个用户(或进程)只能访问其"应该访问"的资源

二、权限的三大要素:“谁"能对"什么"做"什么”

Linux权限管理围绕三个核心要素展开:访问者(谁)资源(什么)操作(做什么)。我们先从"谁"开始讲起。

1. 访问者分类:你的"身份标签"

Linux将访问者分为三类,就像现实生活中"家人、同事、陌生人"的区别:

  • 所有者(User,简称u):文件/目录的创建者,默认拥有最高控制权(除非被特殊限制)。
    比如你创建的notes.txt,你就是它的所有者。

  • 所属组(Group,简称g):与所有者同组的用户。Linux中每个用户可以属于多个组,组的作用是方便批量授权(比如团队共享文件)。
    比如市场部的共享文件夹,组内成员(市场部员工)可以编辑,其他部门员工不能。

  • 其他用户(Others,简称o):既不是所有者,也不在所属组的用户,相当于"陌生人"。

举个场景例子
南玖(用户NJ)创建了一个项目文档project.md,他将文件所属组设为dev(开发组),组内有小红(xh)和小李(xl),而小张(xz)属于test组(非dev)。此时:

  • 所有者u:南玖(NJ
  • 所属组g:dev组(小红、小李)
  • 其他用户o:小张(xz)及所有非dev组用户
    在这里插入图片描述
  • 注意:root用户不受权限约束,属于Linux系统中的特权级别

2. 资源类型:文件的"身份属性"

Linux中的"资源"就是文件和目录,但它们的类型远不止"文件"和"文件夹"这么简单。通过ls -l命令查看文件时,最左边的第一个字符就是文件类型:

类型标识含义实际案例
-普通文件文本文件(a.txt)、脚本(run.sh)、二进制程序(/bin/ls
d目录文件夹(/home/var/log
l软链接(符号链接)类似Windows的快捷方式,ls -l会显示链接指向的原文件(如link -> /home/file
b块设备文件存储设备(硬盘、U盘),如/dev/sda(第一块硬盘)、/dev/sdb1(第二块硬盘第一个分区)
c字符设备文件串行设备(键盘、鼠标、显示器),如/dev/tty(终端)、/dev/input/mouse0(鼠标)
p管道文件用于进程间通信的临时文件,如mkfifo pipe创建的管道
s套接字文件用于网络或进程间通信的特殊文件,如/var/run/mysqld/mysqld.sock(MySQL的套接字文件)

小技巧:通过ls -lll(别名)可以快速查看文件类型和权限。比如:

ll /dev/sda  # 查看块设备
ll /var/run/mysqld/mysqld.sock  # 查看套接字文件
ll ~/ Desktop  # 查看软链接(如果有)

3. 操作权限:你能"做什么"

知道了"谁"访问"什么",接下来是核心:能执行哪些操作。Linux基础权限有三种,分别用r(读)、w(写)、x(执行)表示,对应八进制数值421(后面会讲为什么)。

但注意:权限对"文件"和"目录"的含义完全不同,这是最容易混淆的点!

(1)对文件的权限

文件是"内容载体",权限控制的是对内容的操作:

  • r(4):允许读取文件内容(如cat fileless file)。

    • 没有r:执行cat file会提示Permission denied
  • w(2):允许修改文件内容(如echo "abc" >> filevim file保存)。

    • 注意:删除文件的权限不由文件本身的w决定,而是由文件所在目录的权限决定(后面讲目录时细说)。
  • x(1):允许执行文件(如./script.sh/usr/bin/ls)。

    • 没有x:执行./script.sh会提示Permission denied,即使文件内容是可执行脚本。

实例1:文件权限测试
创建一个测试文件,逐步修改权限观察效果:

# 创建文件并写入内容
echo "hello" > test.txt# 查看初始权限(默认由umask决定,后面讲)
ls -l test.txt  # 通常是 -rw-rw-r--# 移除自己的读权限
chmod u-r test.txt
cat test.txt  # 提示:Permission denied(即使是所有者)# 恢复读权限,移除执行权限(文件默认没有x,这里只是演示)
chmod u+r,u-x test.txt
./test.txt  # 提示:Permission denied(因为没有x)
(2)对目录的权限

目录是"文件列表",权限控制的是对列表的操作(进入、查看、增删文件):

  • r(4):允许查看目录内的文件列表(如ls dir)。

    • 没有r:ls dir会提示Permission denied,但如果知道文件名,可能仍能访问(如cat dir/file,如果文件有权限)。
  • w(2):允许在目录内增删改文件(如touch dir/newfilerm dir/filemv dir/a dir/b)。

    • 这是最危险的权限之一:即使你不是某个文件的所有者,只要对文件所在目录有w权限,就能删除它!
  • x(1):允许进入目录(cd dir)。

    • 没有x:即使有r,cd dir会失败,且ls dir只能看到文件名,看不到详细信息(如权限、大小)。

实例2:目录权限测试
创建一个测试目录,测试不同权限的影响:

# 创建目录
mkdir testdir# 查看初始权限(通常是 drwxrwxr-x)
ls -ld testdir  # 用-ld查看目录本身的权限# 移除自己的x权限
chmod u-x testdir
cd testdir  # 提示:Permission denied(无法进入)
ls testdir  # 能看到文件名,但看不到详细信息(如权限、大小)# 恢复x权限,移除w权限
chmod u+x,u-w testdir
touch testdir/newfile  # 提示:Permission denied(无法创建文件)# 恢复w权限,测试删除文件(关键!)
chmod u+w testdir
# 创建一个属于其他用户的文件(假设当前用户是user1,切换到user2创建)
sudo -u user2 touch testdir/user2file
ls -l testdir/user2file  # 所有者是user2# user1对目录有w权限,能删除user2的文件
rm testdir/user2file  # 成功删除(危险!)

重点总结

  • 对文件:r=读内容,w=改内容,x=执行文件。
  • 对目录:r=看列表,w=增删文件,x=进入目录。

三、权限的表示方法:从字符到数字的"密码本"

Linux权限有两种表示方式:字符表示法(人类易读)和八进制表示法(计算机易读,批量设置高效)。

1. 字符表示法:直观的"权限字符串"

通过ls -l查看文件时,权限部分是一个10位的字符串(第一位是文件类型,后9位是权限):

  • rw- rw- r–
  • 第1位:文件类型(-表示普通文件)。
  • 2-4位:所有者(u)的权限(rw-表示有r和w,无x)。
  • 5-7位:所属组(g)的权限(rw-同上)。
  • 8-10位:其他用户(o)的权限(r--表示只有r)。

在这里插入图片描述
常见的权限组合:

权限字符串含义八进制
rw-r–r–所有者读写,组内读,其他读644
rwxr-xr-x所有者全权限,组内读执行,其他读执行755
rw-------只有所有者能读写(如敏感配置文件)600
rwx------只有所有者能操作(如私人脚本)700
rwxrwxrwx所有人都有全权限(极其危险,谨慎使用)777

2. 八进制表示法:高效的"权限密码"

八进制(0-7)正好对应3位二进制(000-111),而r、w、x刚好是3个权限,因此可以用一个八进制数字表示一类用户的权限:

  • r=4(100),w=2(010),x=1(001)。
  • 权限组合=各权限数值之和:rwx=4+2+1=7,rw-=4+2=6,r-x=4+1=5,以此类推。

9位权限(u、g、o各3位)正好对应3个八进制数字,格式为ugo(如755:u=7,g=5,o=5)。

实例3:字符与八进制转换

# 字符方式:给所有者rwx,组内r-x,其他r-x
chmod u=rwx,g=rx,o=rx file# 八进制方式:7(rwx)5(r-x)5(r-x),效果同上
chmod 755 file# 字符方式:所有者rw,组内r,其他无权限
chmod u=rw,g=r,o=- file# 八进制方式:6(rw)4(r)0(无),效果同上
chmod 640 file

四、权限操作实战:从查看、修改到深度配置

光理解理论不够,我们需要掌握实际操作命令。核心命令有四个:chmod(改权限)、chown(改所有者)、chgrp(改所属组)、umask(改默认权限)。

1. chmod:修改权限的"万能钥匙"

chmod(change mode)是修改权限的核心命令,支持字符和八进制两种方式,语法:

chmod [选项] 权限 文件名/目录名

常用选项:-R(递归修改目录及子内容,操作目录时常用)。

(1)字符方式:精细调整

通过用户+/-=权限的格式,精确增加/移除权限:

  • u+w:给所有者增加w权限
  • g-r:给所属组移除r权限
  • o=rx:给其他用户设置rx权限(覆盖原有权限)
  • a-x:给所有用户(u-x g-x o-x )移除x权限

实例4:字符方式修改权限

# 创建测试文件和目录
touch demo.txt
mkdir demo_dir# 给所有者增加执行权限,给组内增加写权限
chmod u+x,g+w demo.txt
ls -l demo.txt  # -rwxrwxr--# 移除其他用户的读权限
chmod o-r demo.txt
ls -l demo.txt  # -rwxrwx---# 递归修改目录及子内容:给所有用户增加读权限
chmod -R a+r demo_dir #u+r g+r o+r
(2)八进制方式:批量设置

当需要统一设置权限时,八进制更高效(尤其对目录递归操作):

实例5:八进制方式修改权限

# 网站目录通常需要755(所有者可改,其他人只读执行)
chmod -R 755 /var/www/html # 敏感配置文件(如数据库密码)设为600(只有所有者能读写)
chmod 600 /etc/my.cnf# 团队共享目录:所有者和组内可读写执行,其他用户无权限
chmod 770 team_dir
chmod -R 770 team_dir  # 递归修改子内容

2. chown:修改所有者的"身份转让"

chown(change owner)用于修改文件/目录的所有者(只有root或文件原所有者能执行),语法:

chown [选项] 新所有者 文件名/目录名
# 同时修改所有者和所属组:chown 新所有者:新组 文件名

常用选项:-R(递归修改目录)。

实例6:修改所有者

# 创建一个root所有的文件(用sudo)
sudo touch root_file.txt
ls -l root_file.txt  # 所有者是root# 将所有者改为当前用户(假设当前用户是user1)
sudo chown user1 root_file.txt
ls -l root_file.txt  # 所有者变为user1# 同时修改所有者和所属组(将file的所有者改为user2,所属组改为dev组)
sudo chown user2:dev file# 递归修改目录所有者(如将网站目录交给www-data用户,避免权限问题)
sudo chown -R www-data:www-data /var/www/html

3. chgrp:修改所属组的"团队调整"

chgrp(change group)专门修改所属组(chown也能改组,chgrp更直观),语法:

chgrp [选项] 新组名 文件名/目录名

常用选项:-R(递归修改)。

实例7:修改所属组

# 创建一个文件,查看当前所属组(默认是所有者的主组)
touch group_demo.txt
ls -l group_demo.txt  # 组名通常和用户名相同# 创建一个新组(需要root权限)
sudo groupadd dev_team# 将文件所属组改为dev_team
chgrp dev_team group_demo.txt
ls -l group_demo.txt  # 组名变为dev_team# 递归修改目录所属组(团队共享目录交给dev_team组)
chgrp -R dev_team /shared/dev

4. umask:控制默认权限的"隐藏开关"

你有没有想过:为什么新建文件默认权限是-rw-rw-r--(664),新建目录默认是drwxrwxr-x(775)?这是umask(权限掩码)在暗中控制。

(1)umask的工作原理

umask就像一个"权限过滤器",从默认基础权限中"减去"相应权限:

  • 文件基础权限:666(默认没有x,因为安全原因,避免创建文件就可执行)
  • 目录基础权限:777(目录必须有x才能进入,所以默认包含x)

实际权限 = 基础权限 & ~umask(按位与非运算,二进制)

(2)umask的默认值
  • 普通用户:0002(八进制)
    计算文件权限:666 & ~0002 = 664-rw-rw-r--
    计算目录权限:777 & ~0002 = 775drwxrwxr-x

  • root用户:0022(八进制)
    计算文件权限:666 & ~0022 = 644-rw-r--r--
    计算目录权限:777 & ~0022 = 755drwxr-xr-x

(3)umask实战:修改默认权限

通过umask命令查看或修改掩码:

# 查看当前umask
umask  # 普通用户输出0002,root输出0022# 临时修改umask(仅当前终端有效)
umask 0077  # 设置掩码为0077# 测试新文件权限:666 & ~0077 = 600(-rw-------)
touch test_0077.txt
ls -l test_0077.txt  # -rw-------# 测试新目录权限:777 & ~0077 = 700(drwx------)
mkdir dir_0077
ls -ld dir_0077  # drwx------# 永久修改umask(需写入配置文件)
# 普通用户:编辑~/.bashrc,添加umask 0077
# root用户:编辑/etc/profile或/etc/bashrc,添加umask 0027(更安全)

应用场景

  • 个人隐私目录:设置umask 0077,新建文件/目录只有自己能访问。
  • 团队共享目录:设置umask 0002,新建内容默认允许同组访问。

五、权限进阶:特殊权限与深度安全配置

除了基础权限,Linux还有三个特殊权限:SUIDSGIDSticky Bit,它们在特定场景下非常有用。

1. SUID:临时获得所有者权限的"特权通行证"

SUID(Set User ID)是针对可执行文件的特殊权限:当用户执行带有SUID的文件时,会临时获得文件所有者的权限(执行结束后失效)。

标志:所有者权限位的x变为s(如-rwsr-xr-x)。

典型案例/usr/bin/passwd
普通用户修改自己的密码时,需要写入/etc/shadow(只有root有权限)。passwd命令有SUID权限(所有者是root),因此普通用户执行passwd时,临时获得root权限,才能修改/etc/shadow

ls -l /usr/bin/passwd  # -rwsr-xr-x 1 root root ...

设置SUID

# 给文件添加SUID(字符方式)
chmod u+s /path/to/executable# 八进制方式(SUID对应4000,加到权限前)
chmod 4755 /path/to/executable  # 4表示SUID,755是基础权限

注意:SUID有安全风险,不可随意设置(比如给/bin/bash设置SUID,会允许普通用户获得root权限)。

2. SGID:继承所属组权限的"团队通行证"

SGID(Set Group ID)对文件和目录都有效:

  • 对文件:执行文件时临时获得文件所属组的权限(类似SUID,但针对组)。
  • 对目录:目录内新建的文件/目录会继承该目录的所属组(而非创建者的主组),适合团队共享目录。

标志:所属组权限位的x变为s(如-rwxr-sr-x)。

实例8:团队共享目录配置SGID

# 创建团队目录,所属组设为dev_team
mkdir /shared/dev
chown :dev_team /shared/dev# 设置SGID
chmod g+s /shared/dev
ls -ld /shared/dev  # drwxrwsr-x(g位是s)# 普通用户(属于dev_team组)在目录内创建文件
touch /shared/dev/newfile
ls -l /shared/dev/newfile  # 所属组是dev_team(继承目录组),而非用户的主组

3. Sticky Bit:防止误删的"保护盾"

Sticky Bit(粘滞位)只对目录有效:目录内的文件只有所有者或root能删除,其他用户即使有w权限也不能删除别人的文件。

标志:其他用户权限位的x变为t(如drwxrwxrwt)。

典型案例/tmp目录
/tmp是所有用户可读写的临时目录,但为了防止用户删除别人的文件,/tmp设置了Sticky Bit:

ls -ld /tmp  # drwxrwxrwt 1 root root ...

设置Sticky Bit

# 字符方式
chmod o+t /path/to/dir# 八进制方式(Sticky对应1000)
chmod 1777 /path/to/dir  # 1表示Sticky,777是基础权限

六、权限排错:从"Permission denied"到"问题解决"

遇到权限问题不要慌,按以下步骤排查:

  1. 明确操作对象:是文件还是目录?路径是否正确?

    # 确认文件/目录存在
    ls -l /path/to/target
    
  2. 确认自己的身份:当前用户是谁?属于哪些组?

    whoami  # 查看当前用户
    groups  # 查看所属组
    
  3. 查看目标权限:重点看自己对应的类别(u/g/o)是否有需要的权限。

    ls -l /path/to/file  # 文件
    ls -ld /path/to/dir  # 目录
    
  4. 检查父目录权限:访问文件时,需要对所有父目录有x权限(否则无法进入路径)。
    例如访问/a/b/c/file,需要/a/a/b/a/b/c都有x权限。

  5. 临时提权:必要时用sudo临时获得root权限(需配置sudoers)。

案例:解决cd /var/log/nginx提示权限不足

# 步骤1:查看目录权限
ls -ld /var/log/nginx  # 假设是 drwxr-x--- root adm# 步骤2:查看当前用户所属组
groups  # 假设输出:user1 wheel(不在adm组)# 步骤3:解决方法
# 方法1:加入adm组(需要root)
sudo usermod -aG adm user1  # 退出重登录生效# 方法2:临时用sudo提权
sudo su -  # 切换到root
cd /var/log/nginx  # 成功

七、总结:权限管理的"黄金法则"

Linux权限管理看似复杂,实则有章可循。记住以下原则,能帮你避开90%的权限问题:

  1. 最小权限原则:只给必要的权限(如配置文件用600,可执行文件用755)。
  2. 目录谨慎给w:目录的w权限意味着可以删除文件,非必要不设置。
  3. 敏感文件锁死/etc/passwd/etc/sudoers等系统文件,严格限制权限。
  4. 善用组管理:通过组权限实现团队协作,避免直接开放o权限。
  5. 定期检查权限:用find命令排查异常权限(如777的文件、有SUID的危险程序)。

从"Permission denied"到熟练掌控权限,需要不断实践。希望这篇文章能成为你的"权限指南",让你在Linux的世界里更自由、更安全地操作。如果有疑问,欢迎在评论区交流——毕竟,权限管理的路上,我们都是学习者。

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

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

相关文章

电脑重置一次对电脑伤害大吗

在日常使用电脑的过程中,很多用户或多或少都遇到过系统卡顿、软件冲突、病毒入侵等问题。当电脑变得“越来越慢”或频繁出错时,一些用户会考虑“重置电脑”,也就是将电脑恢复到出厂设置。但不少人心中也有疑问:重置电脑一次&#…

CSP-J系列【2024】P11229 [CSP-J 2024] 小木棍题解

题目描述小 S 喜欢收集小木棍。在收集了 n 根长度相等的小木棍之后,他闲来无事,便用它们拼起了数字。用小木棍拼每种数字的方法如下图所示。现在小 S 希望拼出一个正整数,满足如下条件:拼出这个数恰好使用 n 根小木棍;…

C# 继承 虚方法

继承 虚方法 (重写) virtual 虚方法的关键字 override 重写的关键字 练习: 继承 继承:很多类有相似的数据 相同的属性 相同的方法 也有不同的 这个时候就可以使用继承 让多个类去继承自某个具有相同数据的基类(父类) 这…

Java 堆(优先级队列)

文章目录优先级队列模拟实现优先级队列向下调整建堆向上调整建堆堆的删除priorityQueue构造方法大根堆和小根堆的向上调整比较方法扩容面试题堆排序优先级队列 priorityqueue:底层是一颗完全二叉树 小根堆:根比左右孩子都小大根堆:根比左右…

在.NET Core API 微服务中使用 gRPC:从通信模式到场景选型

目录 一、gRPC 基础:为什么它适合微服务? 二、gRPC 的四种通信模式及.NET Core 实现 1. 一元 RPC(Unary RPC):最基础的请求 - 响应模式 2. 服务器流式 RPC(Server Streaming RPC)&#xff1…

HTML零基础快速入门教程(详细篇)

本文详细介绍HTML零基础快速入门的基础知识,包括HTML的介绍、语言的一些实际作用、语法规范注意,如标签结构、标签属性、大小写不敏感等,还介绍了HTML文件的具体书写规则,如文件扩展名、文档类型声明和HTML结构以及具体的一些HTML…

LLM评测框架Ragas:SQL指标(解决了Ollama推理框架不支持的问题)

SQL类的度量指标是指运行SQL后的结果和预期之间的一个度量值。 datacompy score datacompy score 使用DataCompy(一个比较pandas的数据格式的python类,所以需要按照datacompy:pip install datacompy),默认是按照rows比较,也可以设置按照columns比较,这个事通过mode参数…

ubuntu24 ros2 jazzy

安装2 software & update 选择其它 安装 一、前提准备 检查操作系统版本: 确保你的系统版本是Ubuntu 24.04。你可以通过运行lsb_release -a命令来检查当前的系统版本。 设置UTF-8支持: ROS 2需要UTF-8编码支持。你可以通过以下命令来检查和设置UTF…

设备虚拟化技术

设备虚拟化技术概述设备虚拟化技术通过软件模拟物理硬件设备,使多个操作系统或应用程序能够共享同一台物理设备。它广泛应用于云计算、服务器整合和测试环境等领域。核心目标是提高资源利用率、隔离性和灵活性。•当接入的用户数增加到原交换机端口密度不能满足接入…

开发避坑短篇(3):解决@vitejs plugin-vue@5.0.5对Vite^5.0.0的依赖冲突

异常信息 # npm resolution error reportWhile resolving:system3.8.8 Found: vite6.2.3 node_modules/vitedev vite"6.2.3" from the root projectCould not resolve dependency: peer vite"^5.0.0" from vitejs/plugin-vue5.0.5 node_modules/vitejs/plu…

k8s快速部署(亲测无坑)

文章目录k8s快速部署(亲测无坑)一、网络划分二、CentOS7设置 标题固定IP和阿里云YUM源三、主机环境配置四、虚拟机的拷贝五、安装docker(每台主机都需要安装)六、安装kubelet,kubeadm,kubectl(每台机器都需要执行)遇到的问题参考文档k8s快速部署&#xf…

简易RAG问答引擎的构建与体验

RAG(检索增强生成)是结合检索与生成式 AI 的技术框架。核心逻辑是先从外部知识库精准检索相关信息,再将其作为上下文输入大模型生成回答。技术上依赖检索引擎(如向量数据库、BM25)、大语言模型(如 GPT、LLa…

C++11特性学习 Day1

nullptr对于c中null (void*)0,所以在为函数传参传入0时,无法清楚地分辨是int类型的0还是指的是空指针null在C11中清晰的将空指针变为了nullptr,0专指int型的数字0override关键字在子类中对父类的函数的覆写之后加上override关键字&#xff0…

微算法科技(NASDAQ: MLGO)探索优化量子纠错算法,提升量子算法准确性

随着量子计算技术的飞速发展,量子计算机在解决复杂计算问题上的潜力日益显现。然而,量子计算面临的一个重大挑战是量子比特的脆弱性,即量子比特容易受到环境噪声和干扰的影响,导致量子态的塌缩和计算结果的错误。微算法科技&#…

MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉

MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉由于老产品即时通讯私有化软件就是采用MongoDB ,但是版本实在太低,要做大更新,其次针对10年前完美运营的项目来到10年后的现在就不一定行,优雅…

Kotlin 中的单例模式(Singleton)与对象声明

在 Kotlin 中,类描述的是一种通用结构,可以多次实例化,也可以用多种方式实例化。但有时我们只需要单个实例,不多不少。单例模式能帮你更好地组织代码,把相关的方法聚合在一起。 单例模式是什么? 单例模式是…

Shell 编程基础入门从认识到实战

对于刚接触 Linux 或 Unix 系统的开发者来说,Shell 脚本往往是自动化操作的第一道门槛。它不像 Python 那样语法简洁,也不像 Java 那样有完善的面向对象体系,但却能以极少的代码实现强大的系统管理功能。本文将从 Shell 的基本概念讲起&#…

混合遗传粒子群算法在光伏系统MPPT中的应用研究

混合遗传粒子群算法在光伏系统MPPT中的应用研究 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,觉得好请收藏。点击跳转到网站。 摘要 本文针对光伏系统最大功率点跟踪(MPPT)问题&#xff0…

机器视觉的布料丝印应用

在纺织印染行业,布料丝印工艺的精度直接决定产品外观质量与市场竞争力。传统丝印设备依赖机械定位与人工校准,面对高密度图案、柔性面料或复杂纹理时,易出现套色偏移、油墨渗透不均等问题,导致良品率波动与生产成本攀升。 随着机…

前端常用类库

常用类库 类库作用 类库可以帮助我们快速实现项目业务的开发与功能的实现, 帮助我们解放劳动力提高生产效率, 前端中的类库与框架都是由原生javascript编写, 提供给其他开发者应用于某一业务环境或者需求。一般有开发者/团队开源维护. 优秀的类库需要具备高度封装可用, 稳定, …