Linux用戶與權限管理:從基礎概念到ACL高級控制
1. 用戶基礎概念1.1 用戶定義在Linux系統(tǒng)中用戶User是用于身份識別、權限隔離和資源訪問管控的賬戶實體。每個用戶都有一個唯一的數(shù)字標識符——UIDUser ID。系統(tǒng)內(nèi)核僅識別UID而不識別用戶名UID是用戶身份驗證和權限檢查的核心依據(jù)。UID分為三大類0超級用戶root用戶擁有系統(tǒng)最高權限1-999系統(tǒng)用戶系統(tǒng)服務或守護進程使用的賬戶通常不允許交互式登錄1000及以上普通用戶普通登錄用戶由管理員創(chuàng)建用戶核心配置文件/etc/passwd存儲用戶基本信息包含7個字段用戶名、密碼占位符、UID、GID、備注、家目錄、登錄shell/etc/shadow存儲加密后的密碼及密碼策略信息1.2 組定義用戶組Group是多個用戶的集合其主要作用是簡化Linux文件/目錄的權限管理。系統(tǒng)通過GIDGroup ID數(shù)字標識來識別組。每個用戶必須有一個主組Primary Group同時可以加入多個附加組Supplementary Groups。2. 常見用戶操作命令2.1 查看當前登錄用戶Linux提供了多種查看登錄用戶的方式who顯示所有登錄系統(tǒng)的用戶信息包含終端、登錄時間、IP地址whoami輸出當前操作用戶的用戶名w功能最全顯示登錄用戶及其當前執(zhí)行的命令、系統(tǒng)負載等信息2.2 查看指定用戶組# 查看指定用戶組信息 cat /etc/group | grep 組名 示例查看sudo組信息 cat /etc/group | grep sudo2.3 查看用戶的ID和所屬組# 查看指定用戶的UID、GID及所屬組 id 用戶名 示例查看當前用戶信息 id 或查看特定用戶 id alice2.4 添加用戶# 基本語法 useradd [選項] 用戶名 常用選項 -u指定UID0-超級用戶1-999系統(tǒng)用戶1000普通用戶 -G指定附加組多個組用逗號分隔 -d指定家目錄路徑 -s指定登錄shell -m創(chuàng)建家目錄通常與-d一起使用 -g指定主組 示例創(chuàng)建普通用戶bobUID為1001主組為users附加組為sudo useradd -u 1001 -g users -G sudo -m -d /home/bob -s /bin/bash bob3. 組操作命令3.1 添加組# 語法 groupadd [選項] 組名 常用選項 -g指定GID -r創(chuàng)建系統(tǒng)組GID小于1000 示例創(chuàng)建開發(fā)組 groupadd -g 2000 developers3.2 修改組# 語法 groupmod [選項] 組名 常用選項 -g修改GID -n修改組名格式-n 新組名 原組名 示例將developers組GID改為2001 groupmod -g 2001 developers 示例將developers組重命名為devteam groupmod -n devteam developers3.3 刪除組# 語法 groupdel 組名 注意生產(chǎn)環(huán)境中建議謹慎刪除組特別是當組內(nèi)有用戶時 示例刪除testgroup組 groupdel testgroup4. 用戶管理進階4.1 用戶分類超級用戶Super UserUID0通常是root系統(tǒng)用戶System UserUID1-999用于系統(tǒng)服務普通用戶Regular UserUID≥1000普通登錄賬戶4.2 修改用戶# 語法 usermod [選項] 用戶名 常用選項 -u修改UID -G覆蓋用戶的附加組會替換原有附加組 -aG追加附加組不替換原有組 -m移動家目錄到新位置通常與-d一起使用 -d修改家目錄路徑 -s修改登錄shell -l修改用戶名 示例修改用戶alice的UID為1002 usermod -u 1002 alice 示例為alice追加sudo附加組 usermod -aG sudo alice 示例修改alice的家目錄并移動原有文件 usermod -m -d /home/alice_new alice5. 權限設置5.1 chmod命令# 語法 chmod [選項] [權限] 文件/目錄名 權限表示方法 1. 符號模式u/g/o/a /-/ r/w/x 2. 數(shù)字模式4位八進制數(shù) 示例符號模式 chmod ux script.sh # 給所有者添加執(zhí)行權限 chmod g-w file.txt # 移除所屬組的寫權限 chmod or file.txt # 設置其他用戶只有讀權限 chmod ar file.txt # 給所有用戶添加讀權限 示例數(shù)字模式 chmod 755 script.sh # rwxr-xr-x chmod 644 file.txt # rw-r--r-- chmod 750 directory/ # rwxr-x---5.2 權限位詳解Linux文件權限實際上由4位數(shù)字組成格式為特殊位 所有者 所屬組 其他用戶如0755。第1位特殊權限位取值范圍1、2、4分別代表1粘滯位 - t/T通常用于目錄確保只有文件所有者、目錄所有者或root才能刪除/重命名文件2設置組ID - sgid文件以所屬組的身份執(zhí)行目錄中新創(chuàng)建的文件繼承目錄的組所有權4設置用戶ID - suid文件以所有者的身份執(zhí)行而不是執(zhí)行者第2-4位分別表示所有者、所屬組、其他用戶的rwx權限讀4寫2執(zhí)行1大小寫含義小寫t同時設置了執(zhí)行權限(x)和粘滯位大寫T設置了粘滯位但沒有執(zhí)行權限(x)同理適用于s/Ssuid/sgid示例# 設置粘滯位目錄 chmod 1777 /shared/tmp # 或使用符號模式 chmod t /shared/tmp 設置suid程序 chmod 4755 /usr/bin/passwd 查看結(jié)果-rwsr-xr-x 設置sgid目錄 chmod 2775 /shared/project 新創(chuàng)建的文件將繼承project組的權限6. ACL訪問控制列表ACLAccess Control List提供了比傳統(tǒng)Unix權限更細粒度的訪問控制機制允許為特定用戶或組設置獨立的權限。6.1 查看ACL# 語法 getfacl 文件/目錄名 示例查看文件ACL getfacl important.doc 輸出示例 # file: important.doc # owner: alice # group: developers user::rw- group::r-- other::r-- user:bob:rwx group:testers:r-x6.2 設置ACL# 語法為用戶設置ACL setfacl [-R] -m u:用戶名:權限 文件/目錄名 語法為組設置ACL setfacl [-R] -m g:組名:權限 文件/目錄名 選項說明 -m修改modifyACL規(guī)則 -R遞歸設置對目錄及其子目錄/文件生效 示例為用戶bob設置對file.txt的讀寫執(zhí)行權限 setfacl -m u:bob:rwx file.txt 示例為developers組設置對project目錄的讀寫權限遞歸 setfacl -R -m g:developers:rw project/ 示例設置默認ACL新創(chuàng)建的文件繼承ACL setfacl -m d:u:charlie:rw shared_dir/6.3 刪除ACL條目# 語法刪除特定用戶的ACL setfacl [-R] -x u:用戶名 文件/目錄名 語法刪除特定組的ACL setfacl [-R] -x g:組名 文件/目錄名 示例刪除bob對file.txt的ACL權限 setfacl -x u:bob file.txt 示例遞歸刪除developers組對project目錄的ACL setfacl -R -x g:developers project/6.4 清空ACL# 語法清空文件/目錄的所有ACL權限恢復為標準Unix權限 setfacl -b 文件/目錄名 示例清空document.txt的所有ACL設置 setfacl -b document.txt 示例遞歸清空目錄及其內(nèi)容的ACL setfacl -R -b shared_folder/6.5 ACL實戰(zhàn)案例場景項目管理目錄需要精細權限控制# 1. 創(chuàng)建項目目錄 mkdir -p /projects/website 2. 設置基礎權限 chmod 770 /projects/website chown alice:developers /projects/website 3. 為項目經(jīng)理設置完全控制 setfacl -m u:bob:rwx /projects/website 4. 為測試組設置讀和執(zhí)行權限 setfacl -m g:testers:r-x /projects/website 5. 為實習生設置只讀權限 setfacl -m u:charlie:r-- /projects/website 6. 設置默認ACL確保新創(chuàng)建的文件繼承權限 setfacl -m d:u:bob:rwx /projects/website setfacl -m d:g:testers:r-x /projects/website setfacl -m d:u:charlie:r-- /projects/website 7. 查看最終ACL設置 getfacl /projects/website7. 總結(jié)Linux用戶與權限管理體系是一個層次化的安全框架基礎層用戶和組的概念通過UID/GID進行身份識別標準權限層基于所有者、所屬組、其他用戶的三元組權限模型使用chmod進行管理特殊權限層suid、sgid、粘滯位提供額外的安全和控制功能擴展權限層ACL訪問控制列表實現(xiàn)更細粒度的權限分配在實際系統(tǒng)管理中建議遵循最小權限原則根據(jù)實際需求選擇合適的權限控制機制。對于簡單的共享場景標準Unix權限通常足夠?qū)τ趶碗s的多用戶協(xié)作環(huán)境ACL提供了更靈活的解決方案。

相關新聞

LangChain深度解析:何時該用,何時該棄?

LangChain深度解析:何時該用,何時該棄?

# LangChain深度解析:何時該用,何時該棄?## 一、背景:抽象不是銀彈在LLM應用開發(fā)中,開發(fā)者面臨一個經(jīng)典困境:直接調(diào)用模型SDK簡單、透明,但面對多步推理、RAG、Agent等復雜場景時,代…

2026/7/29 3:16:01 閱讀更多
CAN總線錯誤幀深度解析:從檢測機制到實戰(zhàn)排查

CAN總線錯誤幀深度解析:從檢測機制到實戰(zhàn)排查

1. 項目概述:為什么我們需要深入理解CAN錯誤幀?在嵌入式開發(fā)和汽車電子領域,CAN總線就像車輛的神經(jīng)系統(tǒng),負責各個控制器(ECU)之間的實時通信。然而,任何通信系統(tǒng)都不可能永遠完美無瑕。想象一下…

2026/7/29 3:16:01 閱讀更多
智能Bot產(chǎn)品核心價值定位與實戰(zhàn)框架

智能Bot產(chǎn)品核心價值定位與實戰(zhàn)框架

1. Clawdbot的啟示:智能Bot產(chǎn)品的核心價值定位第一次接觸Clawdbot時,最讓我驚訝的是它解決實際業(yè)務痛點的精準度。這個智能Bot沒有堆砌花哨的AI功能,而是聚焦于企業(yè)決策層的核心需求——通過自動化數(shù)據(jù)抓取和智能分析,將分散在各系…

2026/7/29 5:26:04 閱讀更多
從零基礎到電網(wǎng)安全運維項目經(jīng)理:我的逆襲之路(收藏版)

從零基礎到電網(wǎng)安全運維項目經(jīng)理:我的逆襲之路(收藏版)

從零基礎到電網(wǎng)安全運維項目經(jīng)理:我的逆襲之路(收藏版) 作者分享了自己從能源動力工程專業(yè)轉(zhuǎn)向網(wǎng)絡安全,并在1-2年內(nèi)成功進入電網(wǎng)行業(yè)擔任項目經(jīng)理的經(jīng)歷。文章詳細描述了作者如何通過興趣驅(qū)動自學網(wǎng)絡安全知識,并在金…

2026/7/29 5:26:04 閱讀更多
Qt圖像查看器開發(fā):實現(xiàn)大圖加載與實時像素RGB值顯示

Qt圖像查看器開發(fā):實現(xiàn)大圖加載與實時像素RGB值顯示

1. 項目概述與核心價值最近在做一個圖像處理相關的Qt項目,調(diào)試時經(jīng)常需要精確查看圖片某個點的RGB值。雖然Qt Creator自帶的調(diào)試器功能強大,但對于圖像數(shù)據(jù)這種二維數(shù)組的直觀查看,總感覺差了點意思。用過Visual Studio的朋友可能對ImageWatc…

2026/7/29 5:26:04 閱讀更多
Mac連接HP LaserJet P1108打印機

Mac連接HP LaserJet P1108打印機

本人使用Mac Air M4,連接1108打印機進行打印,已成功。 連接教程微信公眾號。 M1芯片版Mac無法連接打印機怎么辦?

2026/7/29 5:26:04 閱讀更多
Fastapi前端搭建

Fastapi前端搭建

1. 配置 import { defineConfig } from vite import vue from vitejs/plugin-vue import { resolve } from pathexport default defineConfig({plugins: [vue()],resolve: {alias: {: resolve(__dirname, src)}},server: {proxy: {/api: {target: http://127.0.0.1:8000,chang…

2026/7/29 5:26:04 閱讀更多
STM32與A5000安全芯片的物聯(lián)網(wǎng)設備開發(fā)實踐

STM32與A5000安全芯片的物聯(lián)網(wǎng)設備開發(fā)實踐

1. 硬件選型與安全架構(gòu)設計在物聯(lián)網(wǎng)設備開發(fā)中,選擇STM32F100ZE作為主控芯片搭配A5000安全芯片的方案,主要基于以下考量:STM32F100ZE作為Cortex-M3內(nèi)核微控制器,具有以下關鍵特性:72MHz主頻和16KB SRAM,滿足…

2026/7/29 5:16:04 閱讀更多
面試官大笑:“一個任務拆給 5 個 Subagent 并行跑,不比 1 個快 5 倍?“我搖頭:“快不了,還可能更慢“

面試官大笑:“一個任務拆給 5 個 Subagent 并行跑,不比 1 個快 5 倍?“我搖頭:“快不了,還可能更慢“

前兩個月,我在重構(gòu) AlgoMooc 網(wǎng)站過程中,發(fā)現(xiàn)一個問題:在 Claude Code 里把一個任務拆給 5 個 Subagent 并行跑,結(jié)果可能比 1 個 agent 從頭干到尾還慢? 大多數(shù)人的第一反應是反過來的:活是并行干的&#…

2026/7/29 0:15:24 閱讀更多