[Linux入門] Linux 賬號和權限管理入門:從基礎到實踐

? ? ? ? ??

? ? ? ? 一、Linux 用戶賬號:誰能訪問系統?

1??超級用戶(root)

2??普通用戶

3??程序用戶

二、組賬號:讓用戶管理更高效

1??組的類型

2??特殊組

三、用戶與組的 “身份證”:UID 和 GID

四、配置文件:賬號信息存哪里?

1??用戶配置文件

2??組配置文件

五、用戶賬號管理:創建、修改與刪除

1??創建用戶:useradd與adduser

2??設置密碼:passwd

3??修改用戶屬性:usermod

4??刪除用戶:userdel

六、組賬號管理:創建、修改與刪除

1??創建組:groupadd

2??管理組成員:gpasswd

3??刪除組:groupdel

七、賬號信息查詢:快速了解系統狀態

1??groups:查看用戶所屬組

2??id:查看用戶 UID/GID

3??finger:查看用戶詳細信息

4??w:查看當前登錄用戶

八、文件與目錄權限:控制訪問的 “鑰匙”

1??權限的表示:10 位字符

2?? 權限設置:chmod

九、文件與目錄歸屬:chown

十、默認權限:umask的作用

1??計算方式

2??設置umask

命令總結


一、Linux 用戶賬號:誰能訪問系統?

Linux 系統中,所有用戶都需要通過 “賬號” 訪問資源,不同類型的賬號擁有不同的權限和作用,主要分為三類:

1??超級用戶(root)

  • 權限:擁有系統最高權限,可執行任何操作(如修改系統配置、刪除關鍵文件等),類似于 Windows 的 Administrator。
  • 特點:UID(用戶標識號)固定為 0,是系統默認的超級管理員。
  • 使用建議:僅在系統管理(如安裝軟件、配置服務)時使用,日常操作建議用普通用戶,減少誤操作風險。

2??普通用戶

  • 權限:權限受限制,僅在自己的 “宿主目錄”(如/home/用戶名)擁有完整權限,其他目錄的操作需依賴授權。
  • 創建方式:由 root 或管理員創建,UID 范圍通常為 500-60000。
  • 用途:供個人日常使用,比如編寫文檔、運行普通程序等。

3??程序用戶

  • 權限:低權限,通常不允許登錄系統,僅用于維持程序或服務運行。
  • 常見例子bin(系統命令程序)、ftp(FTP 服務)、mail(郵件服務)等,UID 范圍默認是 1-499。
  • 作用:隔離程序權限,避免因程序漏洞導致系統被攻擊。

二、組賬號:讓用戶管理更高效

組賬號是將多個用戶按需求集合的管理單位,通過組可以批量設置權限,簡化管理。

1??組的類型

  • 基本組(私有組):每個用戶默認屬于的組,通常與用戶名同名,創建用戶時自動生成。
  • 附加組(公共組):用戶額外加入的組,用于獲取特定權限。

例:用戶zhangsan的基本組是tech(技術部),因工作需要加入mailadm(郵件管理員組),則tech是基本組,mailadm是附加組。

2??特殊組

  • wheel 組:在 Red Hat、CentOS 等系統中,用于授予管理員權限,成員可通過sudo執行高級命令,GID 為 10。
  • sudo 組:在 Ubuntu 系統中替代 wheel 組,成員可使用sudo獲取管理員權限,增強安全性。

三、用戶與組的 “身份證”:UID 和 GID

Linux 通過數字標識(而非用戶名)區分用戶和組,這就是 UID(用戶 ID)和 GID(組 ID)。

  • UID:每個用戶唯一,root 的 UID 固定為 0,程序用戶 1-499,普通用戶 500-60000。
  • GID:每個組唯一,root 組的 GID 固定為 0,程序組 1-499,普通組 500-60000。

為什么用數字??系統內核處理數字比字符串更快,且避免用戶名重復導致的沖突。

四、配置文件:賬號信息存哪里?

用戶和組的信息存儲在相應的配置文件中,理解這些文件有助于手動管理賬號。

1??用戶配置文件

  • /etc/passwd:存儲用戶基本信息,每行對應一個用戶,用:分隔 7 個字段:

    • 格式示例:root:x:0:0:root:/root:/bin/bash
    • 字段含義:用戶名、密碼占位符(x)、UID、GID、用戶說明、宿主目錄、登錄 Shell。
  • /etc/shadow:存儲用戶密碼(加密后)和有效期等敏感信息,僅 root 可讀取,每行 9 個字段:

    • 格式示例:root:$1$55HB4pbx...:14374:0:99999:7:::
    • 關鍵字段:用戶名、加密密碼(*!!表示賬號鎖定)、密碼過期時間、賬號失效時間。

2??組配置文件

  • /etc/group:存儲組基本信息,每行對應一個組,包含組名、GID、組成員等。
  • /etc/gshadow:存儲組密碼(極少使用),用于管理組的訪問權限。

五、用戶賬號管理:創建、修改與刪除

掌握以下命令,可輕松管理用戶賬號。

1??創建用戶:useraddadduser

  • useradd:基礎命令,需手動指定參數,適合腳本自動化。

    • 常用選項:
      • -d:指定宿主目錄(如useradd -d /admin admin創建admin,宿主目錄為/admin);
      • -s:指定登錄 Shell(如useradd -s /bin/bash newuser,默認 Shell 是/bin/bash);
      • -m:自動創建宿主目錄(如useradd -m test)。
  • adduser:交互式命令,自動配置宿主目錄、Shell 等,適合新手(Debian/Ubuntu 常用)。

    • 示例:adduser mm會提示設置密碼、用戶信息等,自動創建/home/mm目錄。

2??設置密碼:passwd

  • 作用:為用戶設置或修改密碼,剛創建的用戶需設置密碼后才能登錄。
  • 用法:
    • passwd 用戶名:root 為其他用戶設密碼(如passwd test1);
    • passwd:普通用戶修改自己的密碼(需驗證舊密碼);
    • 選項:-l鎖定賬號(passwd -l test1)、-u解鎖(passwd -u test1)。

3??修改用戶屬性:usermod

  • 常用選項:
    • -s:修改登錄 Shell(如usermod -s /sbin/nologin test1禁止test1登錄);
    • -g:修改基本組(如usermod -g newgroup test1);
    • -L/-U:鎖定 / 解鎖賬號(如usermod -L test1);
    • -d:修改用戶的宿主目錄位置

4??刪除用戶:userdel

  • 用法:userdel 用戶名刪除用戶,-r選項同時刪除宿主目錄(如userdel -r test1)。
  • 注意:若用戶正在登錄,需先退出再刪除,否則會失敗。

六、組賬號管理:創建、修改與刪除

1??創建組:groupadd

  • 示例:groupadd class02創建class02組,GID 自動分配;groupadd -g 1005 class03指定 GID 為 1005。

2??管理組成員:gpasswd

  • 常用選項:
    • -a:添加成員(如gpasswd -a mike rootmike加入root組);
    • -d:刪除成員(如gpasswd -d webmaster rootwebmasterroot組移除)。

3??刪除組:groupdel

  • 示例:groupdel class02刪除class02組(需確保組內無用戶,否則失敗)。

七、賬號信息查詢:快速了解系統狀態

1??groups:查看用戶所屬組

  • 示例:groups mike顯示mike所屬的所有組(如mike : mike root)。

2??id:查看用戶 UID/GID

  • 示例:id root顯示root的 UID(0)、GID(0)及所屬組。

3??finger:查看用戶詳細信息

  • 示例:finger root顯示root的宿主目錄(/root)、登錄 Shell(/bin/bash)等。

4??w:查看當前登錄用戶

  • 示例:w顯示登錄用戶、終端、登錄時間等(如root192.168.204.1登錄)。

八、文件與目錄權限:控制訪問的 “鑰匙

Linux 通過 “權限” 和 “歸屬” 控制文件 / 目錄的訪問,這是系統安全的核心。

1??權限的表示:10 位字符

ls -l查看文件屬性時,最左側的 10 位字符代表權限,例如drwxr-xr-x

  • 第 1 位:文件類型(d= 目錄、-= 普通文件、l= 鏈接文件);
  • 2-4 位:屬主權限(r= 讀、w= 寫、x= 執行);
  • 5-7 位:屬組權限;
  • 8-10 位:其他用戶權限。

例:rwxr-xr-x表示:

  • 屬主:可讀、可寫、可執行(rwx);
  • 屬組:可讀、可執行(r-x);
  • 其他用戶:可讀、可執行(r-x)。

2?? 權限設置:chmod

  • 符號模式:用u(屬主)、g(屬組)、o(其他)、a(所有)配合+(加權限)、-(減權限)、=(設權限)。

    • 示例:chmod u+x file給屬主添加執行權限;chmod g-w,o-r file移除屬組寫權限和其他用戶讀權限。
  • 數字模式:用 3 位數字表示權限(r=4w=2x=1),總和越大權限越全。

    • 示例:chmod 755 file表示屬主rwx(7=4+2+1)、屬組r-x(5=4+1)、其他r-x(5);
    • 遞歸設置:chmod -R 644 /data/data及子目錄權限設為rw-r--r--

九、文件與目錄歸屬:chown

通過chown可修改文件 / 目錄的屬主(所有者)或屬組。

  • 用法:
    • 修改屬主:chown ftp /var/ftp/var/ftp屬主改為ftp
    • 同時修改屬主和屬組:chown daemon:wheel myfilemyfile屬主改為daemon,屬組改為wheel
    • 遞歸修改:chown -R test:test /data/data及子目錄的屬主和屬組改為test

十、默認權限:umask的作用

umask(權限掩碼)決定新創建文件 / 目錄的默認權限,它定義了 “需要屏蔽的權限”。

1??計算方式

  • 新文件默認最大權限是666rw-rw-rw-),目錄是777rwxrwxrwx);
  • 實際權限 = 默認權限 & (~umask 值)(~表示取反)。

例:若umask022

  • 新文件權限:666 & ~022 = 644rw-r--r--);
  • 新目錄權限:777 & ~022 = 755rwxr-xr-x)。

2??設置umask

  • 臨時設置:umask 022(當前終端有效);
  • 永久設置:在~/.bashrc(用戶級)或/etc/profile(系統級)添加umask 022,執行source ~/.bashrc生效。

命令總結

命令功能常用選項示例
useradd添加用戶賬號-c:指定注釋性描述;-d:指定用戶主目錄,配合 - m 可創建目錄;-g:指定所屬基本組;-G:指定所屬附加組;-s:指定登錄 Shell;-u:指定 UID 號;-m:自動創建主目錄;-M:不創建主目錄;-e:指定賬號失效時間創建輔助管理員賬號 admin,宿主目錄為 /admin,基本組為 root:useradd -d /admin -g root admin;創建名為 b_down 的 FTP 賬號,2025-12-31 失效且禁止終端登錄:useradd -e 2025-12-31 -s /sbin/nologin b_down
adduser添加新用戶,自動配置主目錄、Shell 等,交互性更強,適用于 Debian 系列--system:創建系統用戶,不分配主目錄;--home <目錄>:指定主目錄;--shell <shell 路徑 >:指定默認 Shell;--group:創建與用戶名相同的用戶組;--gid <GID>:指定組 ID;--uid <UID>:指定用戶 ID;--no-create-home:不創建主目錄;--disabled-password:創建用戶但不設置密碼;--disabled-login:創建用戶但不允許登錄;--gecos "<信息>":設置用戶 GECOS 信息;--extra-groups < 組名,...>:讓新用戶加入額外的組創建用戶 mm 并交互式設置信息:adduser mm;創建系統用戶 sysuser:sudo adduser --system sysuser
passwd管理用戶口令,包括設置、修改、鎖定、解鎖等-l:鎖定賬號;-u:解鎖賬號;-d:使賬號無口令修改 test1 用戶的密碼:passwd test1;鎖定賬號 bdqn_zeng:passwd -l bdqn_zeng;解鎖賬號 bdqn_zeng:passwd -u bdqn_zeng
usermod修改用戶賬號屬性-u:修改 UID 號;-d:修改宿主目錄;-e:修改賬號失效時間;-g:修改基本組;-G:修改附加組;-s:指定登錄 Shell;-l:更改登錄名稱;-L:鎖定用戶賬戶;-U:解鎖用戶賬戶;-a:追加附加組,不改變原本附加組鎖定賬號 test1:usermod -L test1;更改用戶 username 的初始用戶組為 newgroup:sudo usermod -g newgroup username;將用戶 username 添加到 group1 和 group2:sudo usermod -G group1,group2 username
userdel刪除用戶賬號-r:同時刪除宿主目錄和郵件目錄;-f:強制刪除刪除名為 test1 的用戶并同時刪除其宿主目錄:userdel -r test1;刪除用戶 alice:userdel alice;強制刪除用戶 alice:userdel -f alice

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/915602.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/915602.shtml
英文地址,請注明出處:http://en.pswp.cn/news/915602.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云ssl證書自動安裝及續訂(acme)

目錄 一、shell命令安裝 二、docker run安裝 三、docker compose安裝 一、shell命令安裝 # 安裝acme curl https://get.acme.sh | sh -s emailfloxxx5163.com# 注冊zerossl .acme.sh/acme.sh --register-account -m flowxxx25163.com --server zerossl# 獲取證書 export Al…

@fullcalendar/vue 日歷組件

功能&#xff1a;日程安排&#xff0c;展示日歷&#xff0c;可以用來做會議日歷&#xff0c;可以跨日期顯示日程。 Fullcalendarvue3 日歷組件 參考文檔&#xff1a;【vue2】一個完整的日歷組件 fullcalendar&#xff0c;會議預約功能 中文說明文檔&#xff1a;https://www.he…

Dijkstra 算法求解多種操作

一、問題背景與核心需求 需要找到從a到b的最優操作序列&#xff0c;使得總花費最小。三種操作的規則為&#xff1a; 操作 1&#xff1a;x → x1&#xff0c;花費c1&#xff1b;操作 2&#xff1a;x → x-1&#xff0c;花費c2&#xff1b;操作 3&#xff1a;x → x*2&#xff0…

本地項目提交到git教程

創建遠程倉庫 登錄 GitHub&#xff0c;點擊右上角 New repository。 填寫倉庫名稱&#xff08;如 my-project&#xff09;、描述&#xff0c;選擇公開 / 私有。 不要初始化 README、.gitignore 或 LICENSE&#xff08;保持空倉庫&#xff09;&#xff0c;點擊 Create repositor…

Linux 密碼生成利器:pwgen 命令詳解

往期好文&#xff1a;統信 UOS 運行 Windows 應用新利器&#xff01;彩虹虛擬化軟件 V3.2 全新上線&#xff0c;限時30天免費體驗 在日常運維、安全測試、用戶管理等場景中&#xff0c;隨機密碼的生成是一項常見需求。為了避免人工設置密碼帶來的重復性弱密碼問題&#xff0c;…

Qt 應用程序入口代碼分析

Qt 應用程序入口代碼分析 這段代碼是 Qt GUI 應用程序的標準入口點&#xff0c;相當于 Qt 程序的"心臟"。讓我詳細解釋每一部分的作用&#xff1a; int main(int argc, char *argv[]) {// 1. 創建 Qt 應用程序對象QApplication a(argc, argv);// 2. 創建主窗口對象Wi…

基于springboot+mysql的中小型醫院網站(源碼+論文+開題報告)

一、開發環境 Java技術 描述&#xff1a;Java是一種非常常用的編程語言&#xff0c;在全球編程語言排行榜上總是前三。Java的跨平臺能力十分強大&#xff0c;只需一次編譯&#xff0c;任何地方都可以運行。除此之外&#xff0c;它還擁有簡單的語法和實用的類庫&#xff0c;讓…

【Docker基礎】Docker-compose常用命令實踐(三):鏡像與配置管理

目錄 前言 1 鏡像與配置管理概述 1.1 核心概念解析 2 鏡像構建命令詳解 2.1 構建鏡像&#xff08;build命令&#xff09; 2.2 基本語法 2.3 常用選項 2.4 構建過程流程 2.5 實際應用案例 3 配置驗證命令詳解 3.1 驗證配置&#xff08;config命令&#xff09; 3.2 基…

Android 實例 - 分頁器封裝實現(上一頁按鈕、下一頁按鈕、當前頁碼 / 總頁數、每頁條數、總記錄數)

一、需求分頁器需要包含&#xff1a;【上一頁按鈕】、【下一頁按鈕】、【當前頁碼 / 總頁數】、【每頁條數】、【總記錄數】點擊【上一頁按鈕】&#xff0c;渲染上一頁的數據&#xff0c;如果當前頁碼為第一頁&#xff0c;則禁用【上一頁按鈕】點擊【下一頁按鈕】&#xff0c;渲…

從代碼學習深度強化學習 - SAC PyTorch版

文章目錄 前言 SAC處理連續動作空間問題 (Pendulum-v1) 核心代碼實現 **工具函數與環境初始化** **ReplayBuffer、網絡結構與SAC算法** **訓練與結果** SAC處理離散動作空間問題 (CartPole-v1) 核心代碼實現 **工具函數與環境初始化** **ReplayBuffer、網絡結構與SAC算法 (離散…

物聯網安裝調試-溫濕度傳感器

以下為溫濕度傳感器在物聯網安裝調試中的全流程技術指南,涵蓋選型、安裝、調試及故障排查,結合工業/農業/家居三大場景實操要點: 一、傳感器選型核心參數表 參數 工業場景 農業大棚 智能家居 選型建議 精度 0.5℃/1.5%RH 1℃/3%RH 1℃/5%RH 工業級首選Sensirion SHT3x系列 防…

MySQL 核心知識點梳理(1)

目錄 1.什么是數據庫? 關系型數據庫 非關系型數據庫 2.Mysql出現性能差的原因? 3.MySQL的內聯,左外聯,右外連接的區別 4.為什么要有三大范式 建表需要考慮的問題? char和varchar的區別 blob和text的區別? DATETIME和TIMESTAMP的區別 in和exists的區別 null值陷 …

Word快速文本對齊程序開發經驗:從需求分析到實現部署

在日常辦公中&#xff0c;文檔排版是一項常見但耗時的工作&#xff0c;尤其是當需要處理大量文本并保持格式一致時。Microsoft Word作為最流行的文檔處理軟件之一&#xff0c;雖然提供了豐富的排版功能&#xff0c;但在處理復雜的文本對齊需求時&#xff0c;往往需要重復執行多…

力扣面試150(34/150)

7.20 242. 有效的字母異位詞 給定兩個字符串 s 和 t &#xff0c;編寫一個函數來判斷 t 是否是 s 的 字母異位詞 我的思路&#xff1a; 遍歷s到一個sMap&#xff0c;字母次數的方式遍歷t&#xff0c;判斷t中的char是否在sMap當中&#xff0c;如果在的話次數-1&#xff0c;判…

軟件工程:可行性分析的任務及報告

簡介 本博客圍繞軟件工程中的第一關——“可行性分析的任務及報告”展開&#xff0c;詳細解析了可行性分析的基本概念、分析任務、四類可行性&#xff08;技術、經濟、操作、社會&#xff09;以及可行性分析報告的結構與撰寫要點。通過豐富的理論基礎與圖示支持&#xff0c;幫…

STM32與樹莓派通信

STM32 與樹莓派&#xff08;Raspberry Pi&#xff09;的通信常見方案及實現步驟&#xff1a;1. UART 串口通信&#xff08;最簡單&#xff09;適用場景&#xff1a;短距離、低速數據交換&#xff08;如傳感器數據、調試信息&#xff09;。 硬件連接&#xff1a;STM32引腳樹莓派…

【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts) 視頻教程 - 數據持久化到Mysql

大家好&#xff0c;我是java1234_小鋒老師&#xff0c;最近寫了一套【NLP輿情分析】基于python微博輿情分析可視化系統(flaskpandasecharts)視頻教程&#xff0c;持續更新中&#xff0c;計劃月底更新完&#xff0c;感謝支持。今天講解數據持久化到Mysql 視頻在線地址&#xff…

【Java EE】多線程-初階-Thread 類及常見方法

多線程-初階2. Thread 類及常??法2.1 Thread 的常?構造?法2.2 Thread 的?個常?屬性2.3 啟動?個線程 - start()2.4 中斷?個線程2.5 等待?個線程 - join()2.6 獲取當前線程引?2.7 休眠當前線程本節?標? 認識多線程? 掌握多線程程序的編寫? 掌握多線程的狀態? 掌握…

LVS技術知識詳解(知識點+相關實驗部署)

目錄 1.1 LVS簡介 1.2 LVS體系結構 1.3 LVS相關術語 1.4 LVS工作模式 1.5 LVS工作原理 1.6 LVS調度算法 2.LVS相關實驗部署 2.1 lvs軟件相關信息 2.1.1 ipsadm常見參數 2.1.2 試例 2.2 LVS部署NAT模式 2.2.1 實驗環境 2.2.2 實驗步驟 2.2.2.1 實驗基礎環境 2.2.…

芋道導入邏輯

一、代碼 PostMapping("/import")Operation(summary "導入用戶")Parameters({Parameter(name "file", description "Excel 文件", required true),Parameter(name "updateSupport", description "是否支持更新&a…