linux的用戶操作(詳細介紹)

在 Linux 系統中,用戶管理是系統管理員的核心工作之一,涉及用戶賬號的創建、修改、刪除、權限分配等操作。Linux 采用多用戶多任務機制,通過嚴格的用戶和組管理確保系統安全性和資源分配合理性。以下是 Linux 用戶操作的詳細介紹:

一、用戶賬號的基本概念

  1. 用戶類型

    • 超級用戶(root):擁有系統最高權限(UID=0),可執行所有操作。
    • 系統用戶:用于運行服務(如nginxmysql),通常不允許登錄,UID 范圍一般為 1-999(不同發行版可能不同)。
    • 普通用戶:由 root 創建的用戶,權限受限制,UID 范圍通常從 1000 開始。
  2. 用戶標識

    • UID(User ID):系統識別用戶的唯一數字標識(如 root 的 UID 為 0)。
    • GID(Group ID):用戶所屬主組的唯一標識。
    • 用戶名:用戶登錄時使用的字符串(如alicebob)。
  3. 關鍵配置文件

    • /etc/passwd:存儲用戶賬號基本信息(用戶名、UID、GID、家目錄等)。
    • /etc/shadow:存儲用戶密碼哈希及密碼策略(權限為 000,僅 root 可讀取)。
    • /etc/group:存儲組信息(組名、GID、成員列表)。
    • /etc/gshadow:存儲組密碼信息(較少使用)。

二、用戶賬號管理命令

1. 創建用戶(useradd

用于新建用戶賬號,語法:

useradd [選項] 用戶名

常用選項:

  • -u <UID>:指定用戶的 UID(需確保唯一)。
  • -g <GID/組名>:指定用戶的主組(默認會創建與用戶名同名的組)。
  • -G <組1,組2>:指定用戶的附加組(逗號分隔多個組)。
  • -d <家目錄>:指定用戶的家目錄(默認/home/用戶名)。
  • -s <shell路徑>:指定用戶的登錄 shell(默認/bin/bash,禁止登錄可設為/sbin/nologin)。
  • -m:自動創建家目錄(默認創建,部分發行版需顯式指定)。
  • -c <注釋>:添加用戶注釋(如全名、用途)。

示例:

# 創建用戶alice,主組為users,附加組為sudo,家目錄為/home/alice,shell為bash
useradd -g users -G sudo -d /home/alice -s /bin/bash -c "Alice Smith" alice
2. 設置 / 修改密碼(passwd

用于管理用戶密碼,語法:

passwd [選項] 用戶名  # 不指定用戶名則修改當前用戶密碼

常用選項:

  • -l:鎖定用戶(密碼前加!,禁止登錄)。
  • -u:解鎖用戶。
  • -d:刪除用戶密碼(允許空密碼登錄,不推薦)。
  • -e:強制用戶下次登錄時修改密碼。
  • -n <天數>:設置密碼最小有效期(不能提前修改)。
  • -x <天數>:設置密碼最大有效期(過期需修改)。

示例:

# 為alice設置密碼(輸入時無回顯)
passwd alice# 強制alice下次登錄修改密碼
passwd -e alice
3. 修改用戶信息(usermod

用于修改已有用戶的屬性,語法:

usermod [選項] 用戶名

常用選項(與useradd類似,新增關鍵選項):

  • -aG <組>:追加附加組(需配合-G,否則會覆蓋原有附加組)。
  • -l <新用戶名>:修改用戶名(家目錄和 UID 不變)。
  • -m -d <新家目錄>:移動家目錄到新路徑并更新配置。
  • -s <新shell>:修改登錄 shell。

示例:

# 將alice的附加組新增docker
usermod -aG docker alice# 修改alice的用戶名為alice_new,并移動家目錄到/home/alice_new
usermod -l alice_new -m -d /home/alice_new alice
4. 刪除用戶(userdel

用于刪除用戶賬號,語法:

userdel [選項] 用戶名

常用選項:

  • -r:刪除用戶時同時刪除家目錄和郵件目錄(默認僅刪除賬號信息)。

示例:

# 徹底刪除alice(包括家目錄)
userdel -r alice

?? 注意:刪除正在登錄的用戶可能導致文件殘留,建議先確認用戶已退出。

5. 查看用戶信息
  • id:查看用戶 UID、GID 及所屬組:

    id alice  # 輸出:uid=1001(alice) gid=100(users) groups=100(users),27(sudo),998(docker)
    
  • finger(需安裝):查看用戶詳細信息(全名、登錄時間等):

    finger alice
    
  • getent:從系統數據庫中查詢用戶 / 組信息(兼容 NIS/LDAP 等):

    getent passwd alice  # 等價于查看/etc/passwd中alice的行
    

三、用戶組管理

用戶組用于批量管理權限,每個用戶至少屬于一個主組,可加入多個附加組。

1. 創建組(groupadd

語法:

groupadd [選項] 組名

選項:

  • -g <GID>:指定組的 GID。

示例:

# 創建GID為1005的組dev
groupadd -g 1005 dev
2. 修改組信息(groupmod

語法:

groupmod [選項] 組名

選項:

  • -g <新GID>:修改組的 GID。
  • -n <新組名>:修改組名。

示例:

# 將組dev改名為development
groupmod -n development dev
3. 刪除組(groupdel

語法:

groupdel 組名  # 需確保組不是任何用戶的主組,否則需先修改用戶主組
4. 管理組成員(gpasswd

語法:

gpasswd [選項] 組名

常用選項:

  • -a <用戶名>:添加用戶到組。
  • -d <用戶名>:從組中刪除用戶。
  • -M <用戶1,用戶2>:批量設置組成員(覆蓋原有成員)。

示例:

# 將alice添加到development組
gpasswd -a alice development# 批量設置development組的成員為alice和bob
gpasswd -M alice,bob development

四、用戶切換與權限提升

1. 切換用戶(su

用于切換到其他用戶身份,語法:

su [選項] 用戶名  # 不指定用戶名默認切換到root

選項:

  • -?或?-l:模擬完整登錄環境(加載目標用戶的環境變量)。
  • -c <命令>:以目標用戶身份執行單個命令后返回當前用戶。

示例:

# 切換到root并加載環境變量
su - root# 以alice身份執行ls命令
su - alice -c "ls /home/alice"
2. 權限提升(sudo

允許普通用戶以 root 權限執行指定命令(需配置sudoers文件)。
配置方法:

  1. 執行?visudo?打開sudoers配置文件(自動校驗語法,比直接編輯更安全)。
  2. 添加規則:

    bash

    # 允許alice執行所有命令(需輸入alice自己的密碼)
    alice  ALL=(ALL)   ALL# 允許sudo組成員執行所有命令(無需密碼)
    %sudo  ALL=(ALL)   NOPASSWD: ALL
    

使用示例:

# 以root權限安裝軟件
sudo apt install nginx

五、用戶登錄相關操作

1. 查看當前登錄用戶(who/w
  • who:顯示登錄用戶的用戶名、終端、登錄時間和 IP:

    bash

    who  # 輸出:alice  pts/0  2025-08-04 10:00 (192.168.1.100)
    
  • w:在who基礎上增加用戶當前運行的命令和系統負載:

    bash

    w  # 顯示更詳細的登錄用戶活動信息
    
2. 強制用戶 logout(pkill/kill

若需強制踢掉登錄用戶,先通過who獲取其終端(如pts/0),再發送終止信號:

pkill -kill -t pts/0  # 強制終止pts/0終端的所有進程

六、用戶管理最佳實踐

  1. 最小權限原則:普通用戶僅授予必要權限,避免直接使用 root 操作。
  2. 密碼策略:通過passwd設置密碼有效期,禁止空密碼,推薦使用復雜密碼(字母 + 數字 + 符號)。
  3. 定期清理:刪除無用賬號(userdel -r),鎖定長期不使用的賬號(passwd -l)。
  4. 使用 sudo 替代 su:通過sudoers精細控制權限,便于審計操作日志(日志位于/var/log/sudo.log/var/log/auth.log)。
  5. 避免修改系統用戶:系統用戶(如binsys)用于服務運行,隨意修改可能導致服務異常。

通過上述命令和概念,可完成 Linux 用戶從創建到刪除、權限配置的全生命周期管理。合理的用戶管理是保障系統安全和穩定運行的關鍵。

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

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

相關文章

k8s常見問題

以下是 Kubernetes 常見問題&#xff08;FAQ&#xff09;的整理&#xff0c;涵蓋了初學者和運維人員常遇到的痛點&#xff1a; ?一、部署與安裝問題? ?安裝太復雜&#xff1f;?? 解決方案&#xff1a;使用 ?kubeadm?&#xff08;官方工具&#xff09;、Minikube?&#…

RK Android14 新建分區恢復出廠設置分區數據不擦除及開機動畫自定義(一)

文章目錄 前言 一、分區創建與參數配置 二、分區掛載配置 三、SELinux 安全策略 四、系統初始化配置 五、開機動畫路徑重定向 總結 前言 本方案通過在 RK3568 Android 14 系統中創建一個獨立的 rk_partition 分區(128MB),實現以下核心功能: 出廠設置保護:該分區在恢復出廠…

如何快速給PDF加書簽--保姆級教程

買的電子書沒有目錄書簽看著不舒服&#xff0c;手動加書簽加到想吐。想有沒有辦法快速加書簽。這要分為PDF目錄部分可以被復制和不可被復制兩種情況。不可復制時&#xff0c;要用到工具把目錄提取出來&#xff0c;變成文字。 工具&#xff1a;Foxit Phantom福昕閱讀器&#xff…

Redis面試精講 Day 9:Redis模塊開發與擴展

【Redis面試精講 Day 9】Redis模塊開發與擴展 文章標簽 Redis,模塊開發,擴展機制,面試技巧,Redis模塊,Redis插件 文章簡述 本文是"Redis面試精講"系列第9天&#xff0c;聚焦Redis模塊開發與擴展機制。文章詳細解析Redis模塊系統的架構設計&#xff0c;包括模塊加…

八股訓練--Spring

目錄 一、引言 二、Spring 1.Spring框架的特性 2.介紹一下IOC和AOP 3.IOC和AOP都是如何實現的 4.怎么實現依賴注入 5.為什么AOP不用靜態代理 6.介紹一下反射 7.Spring如何解決循環依賴問題 8.Spring常用注解 9.Spring事務什么情況會失效 10.Bean的生命周期 11.Bean…

無公網環境下在centos7.9上使用kk工具部署k8s平臺(amd64架構)

文章目錄前言一、環境列表二、思路三、環境準備四、有網環境下準備文件1.下載所需的rpm包2.準備harbor需要用到的鏡像3. k8s的鏡像文件4、 生成離線安裝包5、harbor創建項目腳本五、無公網環境部署單點集群1、基礎環境安裝2、安裝harbor3 、 準備k8s鏡像4、安裝k8s六、無公網環…

Objective-C中非傳統設計模式的探索與實踐

本文還有配套的精品資源&#xff0c;點擊獲取 簡介&#xff1a;Objective-C的設計模式不僅僅局限于經典模式&#xff0c;還可以利用其動態特性實現一些非傳統的模式。本文介紹了一系列基于Objective-C動態特性的設計模式&#xff0c;包括使用協議代替類繼承、通過分類擴展類…

【筆記】重學單片機(51)(下)

中斷系統 正常運行過程中&#xff0c;被打斷進行另外工作&#xff0c;結束后回到原有進程。 5個中斷源 外部中斷源&#xff08;2個&#xff09;&#xff1a;INT0——由P3.2端口線引入&#xff0c;低電平或下降沿引起。INT1——由P3.3端口線引入&#xff0c;低電平或下降沿引起。…

Go實現程序啟動器進而實現隱藏真實內容

注意&#xff1a; 本文內容于 2025-08-03 01:10:35 創建&#xff0c;可能不會在此平臺上進行更新。如果您希望查看最新版本或更多相關內容&#xff0c;請訪問原文地址&#xff1a;Go實現程序啟動器進而實現隱藏真實內容。感謝您的關注與支持&#xff01; 突發奇想&#xff0c;…

Fiddler 中文版怎么用 實現接口抓包調試與前后端聯調閉環

API調試在現代開發流程中的地位愈發重要&#xff1a;接口數量激增、請求邏輯復雜、數據結構多變、安全校驗機制加嚴……一個小小的參數錯誤、一次隱蔽的跨域問題、一個環境配置疏漏&#xff0c;都可能導致長時間的排查成本。而擁有一款既強大又易用的調試工具&#xff0c;尤其是…

ollama 多實例部署

如果我們需要在一臺服務器上使用多個ollama服務&#xff0c;那么我們需要進行將ollama前端和ollama后端對應連接的操作&#xff0c;否則就會出現如下場景&#xff1a;我們可以在當前端口設置&#xff0c;這句話就是指明當前ollama實例使用哪個后端進行請求&#xff1a;export O…

orchestrator部署

場景&#xff1a; 用于管理MySQL高可用 下載jq包 每臺orchestrator集群機器上都進行下載。 # wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # rpm -ivh epel-release-latest-7.noarch.rpm # yum repolist ###檢查是否已經添加到源列表 # yum i…

CentOS 6.4 上安裝 Oracle 10.2.0.1 并升級到 10.2.0.4

目錄 一、系統檢查與設置 1. 檢查系統版本與磁盤空間 2. 修改系統參數 3. 創建組和用戶 4. 設置主機名 5. 檢查安裝軟件包 6. 設置 oracle 用戶環境變量 二、安裝 Oracle 軟件包 1. 安裝 10.2.0.1 安裝包 2. 安裝 10.2.0.4 補丁 三、建庫 四、配置監聽器 1. 編輯配…

【基于C# + HALCON的工業視系統開發實戰】二十六、車規級PCB全自動質檢:3D SPI+AI光學檢測融合方案

摘要&#xff1a;本文詳細闡述基于C# .NET Core 6與HALCON 24.11開發的車規級PCB板AOI智能檢測系統&#xff0c;提出3D SPI與AI光學檢測融合方案。系統通過結構光3D測量技術實現錫膏印刷質量檢測&#xff0c;結合多算法融合的自動光學檢測完成元件缺陷識別&#xff0c;構建SPI與…

Go源碼解讀——互斥鎖與讀寫鎖

互斥鎖Mutextype Mutex struct {// 表示互斥鎖狀態state int32// 表示信號量&#xff0c;協程阻塞等待該信號量&#xff0c;解鎖的協程釋放信號量從而喚醒等待信號量的協程sema uint32 }Locked: 表示該Mutex是否已被鎖定&#xff0c;0&#xff1a;沒有鎖定 1&#xff1a;已被鎖…

Linux(centos)安全狗

sdui進入操作頁面 [rootlocalhost safedog_an_linux64_2.8.32947]# sdui維護 查看、啟動或停止服務。 [rootiZbp1f0xuq9rc41s6gdvfyZ /]# systemctl status safedog [rootiZbp1f0xuq9rc41s6gdvfyZ /]# systemctl start safedog [rootiZbp1f0xuq9rc41s6gdvfyZ /]# systemct…

ES9 / ES2018 正則表達式增強

? 一、命名捕獲組&#xff08;Named Capture Groups&#xff09;給捕獲結果起名字&#xff0c;更易讀、更易維護。&#x1f539; 傳統寫法&#xff08;位置識別&#xff09;&#xff1a;const result /(\d{4})-(\d{2})-(\d{2})/.exec("2025-07-31"); console.log(…

深入Java開發:Token的全方位解析與實戰指南(下)

深入Java開發&#xff1a;Token的全方位解析與實戰指南&#xff08;下&#xff09; 上一篇 深入Java開發&#xff1a;Token的全方位解析與實戰指南&#xff08;上&#xff09; 五、Token 的生命周期與管理 5.1 Token 的生命周期狀態 Token 的生命周期涵蓋了從創建到最終失效…

第二十四天(數據結構:棧和隊列)隊列實踐請看下一篇

棧和隊列棧 &#xff1a; 是限定在表尾進行插入和刪除操作的線性表實現是一回事&#xff0c;但是必須要滿足棧的基本特點它的設計思路是:先進后出&#xff0c;后進先出棧有兩端1 棧頂(top) &#xff1a;插入數據刪除數據都只能在這一端訪問也只能訪問棧頂2 棧底(bottom) : 棧底…

三、Spark 運行環境部署:全面掌握四種核心模式

作者&#xff1a;IvanCodes 日期&#xff1a;2025年7月25日 專欄&#xff1a;Spark教程 Apache Spark 作為統一的大數據分析引擎&#xff0c;以其高性能和靈活性著稱。要充分利用Spark的強大能力&#xff0c;首先需要根據不同的應用場景和資源環境&#xff0c;正確地部署其運行…