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

相關(guān)新聞

LangChain深度解析:何時(shí)該用,何時(shí)該棄?

LangChain深度解析:何時(shí)該用,何時(shí)該棄?

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

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

CAN總線錯(cuò)誤幀深度解析:從檢測(cè)機(jī)制到實(shí)戰(zhàn)排查

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

2026/7/29 3:16:01 閱讀更多
STM32高級(jí)定時(shí)器深度解析:從互補(bǔ)PWM到電機(jī)控制實(shí)戰(zhàn)

STM32高級(jí)定時(shí)器深度解析:從互補(bǔ)PWM到電機(jī)控制實(shí)戰(zhàn)

1. 項(xiàng)目概述:為什么高級(jí)定時(shí)器是STM32的“王牌”玩過STM32的朋友都知道,定時(shí)器是它的核心外設(shè)之一,從基礎(chǔ)的SysTick到通用定時(shí)器,再到今天要聊的高級(jí)定時(shí)器,功能層層遞進(jìn)。如果說通用定時(shí)器是“瑞士軍刀”,…

2026/7/29 3:16:01 閱讀更多
基于金稅四期的財(cái)稅風(fēng)控規(guī)則引擎與業(yè)財(cái)一體化架構(gòu)實(shí)戰(zhàn)

基于金稅四期的財(cái)稅風(fēng)控規(guī)則引擎與業(yè)財(cái)一體化架構(gòu)實(shí)戰(zhàn)

隨著金稅四期全面上線,傳統(tǒng)財(cái)稅系統(tǒng)在面對(duì)海量高頻風(fēng)險(xiǎn)預(yù)警指標(biāo)時(shí),常因數(shù)據(jù)孤島和規(guī)則硬編碼導(dǎo)致合規(guī)響應(yīng)滯后。企業(yè)在進(jìn)行IPO財(cái)務(wù)規(guī)范或高企申報(bào)時(shí),業(yè)財(cái)數(shù)據(jù)不一致往往成為致命瓶頸。本文將結(jié)合高頓咨詢?cè)贐端財(cái)稅數(shù)字化領(lǐng)域的工程實(shí)踐&#…

2026/7/29 9:26:11 閱讀更多
Flexx桌面應(yīng)用安全加固實(shí)戰(zhàn):從代碼到部署的全面防護(hù)指南

Flexx桌面應(yīng)用安全加固實(shí)戰(zhàn):從代碼到部署的全面防護(hù)指南

1. 項(xiàng)目概述:為什么Flexx應(yīng)用需要特別的安全關(guān)注? 最近在社區(qū)里看到不少朋友開始用Flexx來開發(fā)桌面應(yīng)用,尤其是那些想把Web應(yīng)用打包成獨(dú)立桌面程序的項(xiàng)目。Flexx這個(gè)框架確實(shí)挺有意思,它讓你能用純Python寫前端界面,然…

2026/7/29 9:26:11 閱讀更多
Go與C語言面向?qū)ο缶幊虒?duì)比:結(jié)構(gòu)體、方法接收者與函數(shù)指針模擬類

Go與C語言面向?qū)ο缶幊虒?duì)比:結(jié)構(gòu)體、方法接收者與函數(shù)指針模擬類

1. 項(xiàng)目概述:當(dāng)Go遇上C,兩種“類”思維的碰撞在編程語言的演進(jìn)長(zhǎng)河中,面向?qū)ο缶幊?amp;#xff08;OOP)無疑是一座重要的里程碑。當(dāng)我們談?wù)摗邦悺睍r(shí),腦海中首先浮現(xiàn)的可能是Java、C這類以類為第一公民的語言。但今天&…

2026/7/29 9:26:11 閱讀更多
Arduino模擬信號(hào)與PWM控制:從電位器到LED亮度調(diào)節(jié)的完整實(shí)現(xiàn)

Arduino模擬信號(hào)與PWM控制:從電位器到LED亮度調(diào)節(jié)的完整實(shí)現(xiàn)

1. 從旋鈕到光暈:一個(gè)燈光調(diào)節(jié)器的誕生 最近在整理工作室的舊物,翻出來一塊吃灰已久的Arduino Edison開發(fā)板??粗?amp;#xff0c;我忽然想起很多朋友,包括當(dāng)年的我自己,在入門嵌入式開發(fā)時(shí),常常會(huì)卡在一個(gè)看似簡(jiǎn)單卻至…

2026/7/29 9:26:11 閱讀更多
國(guó)內(nèi)專業(yè)網(wǎng)站建設(shè)公司盤點(diǎn),2026 精選十家高口碑網(wǎng)站設(shè)計(jì)公司全方位梳理

國(guó)內(nèi)專業(yè)網(wǎng)站建設(shè)公司盤點(diǎn),2026 精選十家高口碑網(wǎng)站設(shè)計(jì)公司全方位梳理

一、2026 網(wǎng)站建設(shè)行業(yè)現(xiàn)狀深度解析生成式 AI、GEO 搜索優(yōu)化、llms 協(xié)議規(guī)范、多系統(tǒng)數(shù)據(jù)互通等新技術(shù)落地,市場(chǎng)對(duì)網(wǎng)站建設(shè)服務(wù)商的能力要求發(fā)生根本性分層。中大型企業(yè)、上市公司、出海品牌更青睞兼具行業(yè)深耕、定制開發(fā)、AI 營(yíng)銷配套、長(zhǎng)期運(yùn)維迭代能力的綜合服務(wù)…

2026/7/29 9:26:11 閱讀更多
Agent 平臺(tái)化思考:從定制化開發(fā)到通用 Agent 平臺(tái)的架構(gòu)演進(jìn)

Agent 平臺(tái)化思考:從定制化開發(fā)到通用 Agent 平臺(tái)的架構(gòu)演進(jìn)

Agent 平臺(tái)化思考:從定制化開發(fā)到通用 Agent 平臺(tái)的架構(gòu)演進(jìn) 一、從"一個(gè) Agent 一個(gè)項(xiàng)目"到"Agent 平臺(tái)":工程化必經(jīng)之路 2026 年初,某 SaaS 公司面臨一個(gè)困境:過去一年,他們?yōu)椴煌蛻粜枨箝_發(fā)了…

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

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

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

2026/7/29 0:15:24 閱讀更多
# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫渲染精講

# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫渲染精講

一、應(yīng)用概述 骰子(Dice Roller) 是一款經(jīng)典的休閑娛樂應(yīng)用,模擬了真實(shí)擲骰子的過程。應(yīng)用投擲兩個(gè)骰子(六面標(biāo)準(zhǔn)骰),使用 Unicode 骰面符號(hào)直觀展示每個(gè)骰子的點(diǎn)數(shù),并伴有快速滾動(dòng)的動(dòng)畫效果?!?/p>

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