管理Linux本地用戶和組

什么是用戶

用戶賬戶在可以運行命令的不同人員和程序之間提供安全界限。

在Linux系統中,系統通過分配唯一的標識號(用戶ID或UID)來區分不同的用戶帳戶。

在Linux系統中,用戶帳戶有以下三種主要類型:

  1. 超級用戶

負責管理系統。超級用戶的名稱為root。UID為0,具有完全的系統訪問權限。

  1. 系統用戶

供提供支持服務的進程使用。用戶無法使用系統用戶帳戶以交互式方式登錄。

  1. 普通用戶。

普通用戶對系統具有有限的訪問權限。

使用id命令可顯示有關當前已登錄用戶的信息;

[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost ~]# id user
uid=1000(user) gid=1000(user) groups=1000(user)
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

使用ls命令-l選項可以查看文件的所有者。

對以上字段的說明:

drwxr-xr-x. 表示權限,d表示為文件夾,通常為3段,第一段為user,第二段為group,第三段為others,它們的最高權限位rwx.

1 第二列內容表示鏈接

第三列root表示該文件或者文件夾的擁有者為root,即所屬用戶。

第四列root表示該文件或者文件夾的所屬組為root,即所屬組。

第五列表示文件的大小。

Jul 8 14:10 表示文件或者文件夾的修改時間。

最后一列表示文件名稱或者文件夾名稱。

默認情況下,系統使用/etc/passwd文件存儲有關本地用戶的信息。

user 此用戶的用戶名;

x: 用戶的加密密碼存儲在這里,是一個占位符;

1000: 此用戶帳戶的UID編號;

1000: 此用戶帳戶的主要組的GID編號;

user: 此用戶的簡短注釋、描述;

/home/user: 用戶的主目錄,以及登錄shell啟動時的初始工作目錄;

/bin/bash: 此用戶的默認shell程序,在登錄時運行。

用戶相關文件
  • /etc/passwd:存儲用戶賬戶信息的文件。
  • /etc/shadow:存儲用戶密碼及其相關信息的文件。
  • /etc/group:存儲組信息的文件。

常用用戶管理命令:

useradd:創建或添加一個新用戶。

useradd 命令可以創建名為username的用戶(username替換為實際創建的用戶名)。它會設置用戶的主目錄和帳戶信息,并為該用戶創建一個私有組。

在rhel9中,useradd命令為新用戶分配第一個大于或等于1000的可用UID,除非通過-u選項進行明確指定。

[root@localhost ~]# useradd user
[root@localhost ~]# id user 
uid=1002(user) gid=1005(user) groups=1005(user)
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

?

usermod用于修改用戶的各項參數信息。

usernod --help命令顯示用于修改帳戶的基本選項。

usermod選項

用法

-a --append

與-G選項一起使用將補充組添加到用戶當前的組成員集合中,而不是將補充組集合替換為新的集合。

-c --comment COMMENT

將COMMENT文本添加到 注釋字段。

-d,--home HOME_DIR

為用戶帳戶指定一個主目錄。

-g,--gid GROUP

為用戶帳戶指定主要組。

-G

為用戶帳戶指定補充組的逗號分隔列表。

-L, --lock

鎖定用戶帳戶。

-u,--unlock

解鎖用戶帳戶。

-m

將用戶的主目錄移到新的位置。必須將其與-d選項搭配使用。

-s

為用戶帳戶指定特定的登錄shell。

[root@localhost ~]# mkdir /alex_home 
[root@localhost ~]# usermod -d /alex_home alex    #為用戶指定新的主目錄;[root@localhost ~]# usermod -u 8286 alex     #為用戶指定UID
[root@localhost ~]# id alex 
uid=8286(alex) gid=1000(alex) groups=1000(alex)
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
[root@localhost ~]# usermod -L alex  #鎖定用戶帳戶

??

[root@localhost ~]# usermod -U alex  #解鎖用戶帳戶
[root@localhost ~]# usermod -aG docker alex  #將用戶添加到docker組中

userdel 命令從/etc/passwd中刪除用戶的詳細信息,但用戶的主目錄保持不變。userdel -r 命令從/etc/passwd中刪除用戶,同時刪除用戶的主目錄。

[root@localhost ~]# userdel -r alex
[root@localhost ~]# cat /etc/passwd | grep alex

刪除用戶不指定userdel -r選項的情況刪除用戶,會造成信息泄露。

passwd 命令可為username用戶設置初始密碼,或更改其現有的密碼。

root用戶可以將密碼設置為任何值, 普通用戶必須選擇至少八個字符長的密碼。不要使用字典詞語、用戶名或舊密碼。

UID范圍

UID 0: 超級用戶root帳戶UID。

UID 1-200: 靜態分配給系統進程的系統帳戶UID。

UID 201-999: 分配給不擁有此系統上文件的系統進程的UID。需要非特權UID的軟件將會從這個可用池中動態分配UID。

UID 1000+: 分配給普通非特權用戶的UID范圍。

切換用戶

通過使用su命令,用戶可以切換至另外一個用戶帳戶。

如果從一個普通用戶切換到另外一個普通用戶,或者從普通用戶切換到超級用戶root,則需要提供要切換到的帳戶的密碼。以root用戶身份切換普通用戶時,則無需輸入用戶密碼。

[user@localhost ~]$ su - alex
Password: 
[alex@localhost ~]$ su root
Password: 
[root@localhost alex]# su - user

?如果普通用戶切換用戶時省略用戶名,默認情況下su或su -命令會嘗試切換到root。

[alex@localhost ~]$ su -
Password: 
[root@localhost ~]#

su 和 su -區別:

  • su 切換用戶但保持當前環境。
  • su - 切換用戶并加載新用戶的完整登錄環境。

sudo命令在Linux中用于以超級用戶或另一個用戶的權限執行命令。它允許受限權限的用戶執行需要更高權限的命令,而無需切換到超級用戶身份。

與su命令不同,sudo通常要求用戶輸入其自己的密碼以進行身份驗證,而不是輸入他們正嘗試訪問的用戶帳戶的密碼。

下表總結了su、su - 和sudo命令之間的區別:

su

su -

sudo

成為新用戶

依據升級的命令

環境

當前用戶的

新用戶的

當前用戶的

需要密碼

新用戶的

新用戶的

當前用戶的

特權

與新用戶相同

與新用戶相同

由配置定義

記錄的活動

僅su命令

僅su命令

依據升級的命令

管理本地組

?組是用戶的集合,用于簡化對多個用戶的權限管理。同一組內的用戶可以共享對某些文件或目錄的訪問權限。

groupadd命令用于創建組。

[root@localhost ~]# groupadd group01
[root@localhost ~]# cat /etc/group | grep group01
group01:x:1000:

groupadd命令-g選項指定供組使用的特定GID。

[root@localhost ~]# groupadd -g 2024 group02
[root@localhost ~]# cat /etc/group | grep group02
group02:x:2024:

groupadd命令-r選項用于創建系統組。

[root@localhost ~]# cat /etc/group | grep group03
group03:x:978:

普通組是由系統管理員創建的,用于將多個用戶組織在一起,以便共享文件和資源。普通組的ID(GID)通常在500(有些系統是1000)以上,這取決于系統配置。

系統組是系統默認創建的,用于分配系統進程和服務的權限。系統組的ID(GID)通常在0到499(或999)之間,這取決于系統配置。

groupmod命令可更改現有組的屬性。

groupmod命令-n選項可指定組的新名稱。

[root@localhost ~]# groupmod -n group22 group01
[root@localhost ~]# cat /etc/group | grep group22
group22:x:1000:

groupmod -g選項可指定新的GID。

[root@localhost ~]# cat /etc/group | grep group02
group02:x:2024:
[root@localhost ~]# groupmod -g 20000 group02
[root@localhost ~]# cat /etc/group | grep group02
group02:x:20000:

groupdel命令可刪除組。

[root@localhost ~]# groupdel group03
[root@localhost ~]# cat /etc/group | grep group03

如果組是現有用戶的主要組,則無法刪除它。與使用userdel命令類似,首先檢查以確保找到該組擁有的文件。

組成員資格通過用戶管理進行控制。使用usermod -g命令來更改用戶的主要組。

[root@localhost ~]# id user02
uid=1002(user02) gid=1002(user02) groups=1002(user02)
[root@localhost ~]# usermod -g group01 user02
[root@localhost ~]# id user02
uid=1002(user02) gid=1003(group01) groups=1003(group01)

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

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

相關文章

分布式一致性算法:Raft學習

分布式一致性算法:Raft學習 1 什么是分布式系統? 分布式系統是由一組通過網絡進行通信、為了完成共同的任務而協調工作的計算機節點組成的系統。這些節點可能位于不同的物理位置,但它們協同工作以提供一個統一的計算平臺或服務。分布式系統…

對于復雜的數學模型,怎樣利用 MATLAB 的優化工具箱進行準確的參數估計和模型擬合?

要利用MATLAB的優化工具箱進行準確的參數估計和模型擬合,可以按照以下步驟進行: 定義模型:根據問題的需求和數學模型的形式,定義好模型的數學表達式。 收集數據:收集實際觀測數據,這些數據將用于擬合模型和…

Ubuntu linux安裝新版本go

加速網站:GOPROXY.IO - A Global Proxy for Go Modules 下載地址:All releases - The Go Programming Language Ubuntu jammy版本里面自帶的go版本較低,build ollama的時候報錯,于是升級go 升級操作 從上面下載地址找到自己需…

25秋招面試算法題 (Go版本)

文章目錄 科大訊飛 0713找01不能出現太多 科大訊飛 0713 找01 牛牛擁有一個長度為 n 的01 串,現在他想知道,對于每個字符,在它前面的最近的不同字符的下標是多少? 輸入描述 本題為多組測試數據,第一行輸入一個正整…

代碼隨想錄第五十五天打卡

42. 接雨水 接雨水這道題目是 面試中特別高頻的一道題,也是單調棧 應用的題目,大家好好做做。 建議是掌握 雙指針 和單調棧,因為在面試中 寫出單調棧可能 有點難度,但雙指針思路更直接一些。 在時間緊張的情況有,能寫出…

Unity中一鍵生成具有身體感知的虛擬人物動作

在虛擬現實(VR)和增強現實(AR)的浪潮中,如何讓虛擬人物的動作更加自然、真實,已經成為一個重要課題。AI4Animation項目,一個由 Sebastian Starke 主導的開源框架,為Unity開發者提供了強大的工具集,以實現這一目標。本文…

OrangePi AIpro在安防領域的深思和實戰(曠視科技CNN模型ShuffleNetV1開發案例測試)

一、前言 公司最近有個項目是安防領域的,主要用在邊緣結點,雖然已做成形,但是還是存在一些缺陷,例如:算力問題,開發板的成熟問題,已經各種技術的解決方案落地問題。目前我們集成了很多功能&…

Facebook 開源計算機視覺 (CV) 和 增強現實 (AR) 框架 Ocean

Ocean 是一個獨立于平臺的框架,支持所有主要操作系統,包括 iOS、Android、Quest、macOS、Windows 和 Linux。它旨在徹底改變計算機視覺和混合現實應用程序的開發。 Ocean 主要使用 C 編寫,包括計算機視覺、幾何、媒體處理、網絡和渲染&#x…

python中的pickle模塊和json模塊

目錄 pickle: Python 中的pickle 是一個內置模塊,用于序列化和反序列化 Python 對象結構。序列化是將對象轉換成字節流的過程,這樣對象就可以被存儲到文件中或者通過網絡傳輸。反序列化則是將這些字節流重新轉換成原始對象的過程。 json: json模塊是 …

實現多層感知機

目錄 多層感知機: 介紹: 代碼實現: 運行結果: 問題答疑: 線性變換與非線性變換 參數含義 為什么清除梯度? 反向傳播的作用 為什么更新權重? 多層感知機: 介紹:…

taocms 3.0.1 本地文件泄露漏洞(CVE-2021-44983)

前言 CVE-2021-44983 是一個影響 taoCMS 3.0.1 的遠程代碼執行(RCE)漏洞。該漏洞允許攻擊者通過上傳惡意文件并在服務器上執行任意代碼來利用這一安全缺陷。 漏洞描述 taoCMS 是一個內容管理系統(CMS),用于創建和管…

持續集成的自動化之旅:Gradle在CI中的配置秘籍

持續集成的自動化之旅:Gradle在CI中的配置秘籍 引言 持續集成(Continuous Integration, CI)是現代軟件開發中的一項基礎實踐,它通過自動化的構建和測試流程來提高軟件質量和開發效率。Gradle作為一個靈活的構建工具,…

【眼疾病識別】圖像識別+深度學習技術+人工智能+卷積神經網絡算法+計算機課設+Python+TensorFlow

一、項目介紹 眼疾識別系統,使用Python作為主要編程語言進行開發,基于深度學習等技術使用TensorFlow搭建ResNet50卷積神經網絡算法,通過對眼疾圖片4種數據集進行訓練(‘白內障’, ‘糖尿病性視網膜病變’, ‘青光眼’, ‘正常’&…

jenkins系列-05-jenkins構建golang程序

下載go1.20.2.linux-arm64.tar.gz 并存放到jenkins home目錄: 寫一個golang demo程序:靜態文件服務器:https://gitee.com/jelex/jenkins_golang package mainimport ("encoding/base64""flag""fmt""lo…

window下安裝go環境

一、go官網下載安裝包 官網地址如下:https://golang.google.cn/dl/ 選擇對應系統的安裝包,這里是window系統,可以選擇zip包,下載完解壓就可以使用 二、配置環境變量 這里的截圖配置以win11為例 我的文件解壓目錄是 D:\Software…

力扣32.最長有效括號

力扣32.最長有效括號 class Solution {public:int longestValidParentheses(string s) {int n s.size();int res0;int start -1;vector<int> st;for(int i0;i<n;i){if(s[i] ()st.push_back(i);else{//前面沒有( , (開啟下一段)下一段的開始更新為當前下標if(st.emp…

機器學習和人工智能在農業的應用——案例分析

作者主頁: 知孤云出岫 目錄 引言機器學習和人工智能在農業的應用1. 精準農業作物健康監測土壤分析 2. 作物產量預測3. 農業機器人自動化播種和收割智能灌溉 4. 農業市場分析價格預測需求預測 機器學習和人工智能帶來的變革1. 提高生產效率2. 降低生產成本3. 提升作物產量和質量…

Elsaticsearch java基本操作

索引 基本操作 package com.orchids.elasticsearch.web.controller;import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; import com.orchids.elasticsearch.web.po.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOpe…

探索JT808協議在車輛遠程視頻監控系統中的應用

一、部標JT808協議概述 隨著物聯網技術的迅猛發展&#xff0c;智能交通系統&#xff08;ITS&#xff09;已成為現代交通領域的重要組成部分。其中&#xff0c;車輛遠程監控與管理技術作為ITS的核心技術之一&#xff0c;對于提升交通管理效率、保障道路安全具有重要意義。 JT8…

TensorBoard ,PIL 和 OpenCV 在深度學習中的應用

重要工具介紹 TensorBoard&#xff1a; 是一個TensorFlow提供的強大工具&#xff0c;用于可視化和理解深度學習模型的訓練過程和結果。下面我將介紹TensorBoard的相關知識和使用方法。 TensorBoard 簡介 TensorBoard是TensorFlow提供的一個可視化工具&#xff0c;用于&#x…