? ? ? ? ??
? ? ? ? 一、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??創建用戶:useradd
與adduser
-
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 root
將mike
加入root
組);-d
:刪除成員(如gpasswd -d webmaster root
將webmaster
從root
組移除)。
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
顯示登錄用戶、終端、登錄時間等(如root
從192.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=4
、w=2
、x=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 myfile
將myfile
屬主改為daemon
,屬組改為wheel
; - 遞歸修改:
chown -R test:test /data
將/data
及子目錄的屬主和屬組改為test
。
- 修改屬主:
十、默認權限:umask
的作用
umask
(權限掩碼)決定新創建文件 / 目錄的默認權限,它定義了 “需要屏蔽的權限”。
1??計算方式
- 新文件默認最大權限是
666
(rw-rw-rw-
),目錄是777
(rwxrwxrwx
); - 實際權限 = 默認權限 & (~umask 值)(
~
表示取反)。
例:若umask
為022
:
- 新文件權限:
666 & ~022 = 644
(rw-r--r--
); - 新目錄權限:
777 & ~022 = 755
(rwxr-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 |