#Linux權限管理:從“Permission denied“到系統安全大師

引入

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編寫, 提供給其他開發者應用于某一業務環境或者需求。一般有開發者/團隊開源維護. 優秀的類庫需要具備高度封裝可用, 穩定, …