Linux的用戶和用戶組與權限解析、環境變量說明與配置、sudo配置解析和使用

一、Linux的用戶及用戶組與權限

?1.1、Linux的用戶和用戶組內容介紹

Linux的用戶角色分類
序號Linux的用戶角色說明
1超級用戶擁有對系統的最高管理權限,可執行任意操作,默認是root用戶
2普通用戶只能對自己目錄下的文件進行訪問和修改,具有登錄系統的權限(如:www用戶、ftp用戶、nginx用戶等)
3虛擬用戶也叫“偽”用戶,這類用戶最大的特點是不能登錄系統,它們的存在主要是方便系統管理,滿足相應的系統進程對文件屬主的要求(如:系統默認的bin、adm、nobody用戶等);
Linux的用戶和用戶組關系
序號用戶和用戶組關系說明
1一對一一個用戶可以存在一個組中,也可以是組中的唯一成員
2一對多一個用戶可以存在多個用戶組中(此時用戶具有多個組的共同權限)
3多對一多個用戶可以存在一個組中,這些用戶具有和組相同的權限
4多對多多個用戶可以存在多個組中(多個用戶可分別在多個組中,是前三種關系的拓展)
Linux中的用戶和用戶組相關配置文件
序號用戶和用戶組配置文件說明
1/etc/passwd

是系統用戶配置文件,是用戶管理中最重要的一個文件(這個文件記錄了Linux系統中每個用戶的一些基本屬性,并且對所有用戶可讀

2/etc/shadow

是用戶影子文件,存儲用戶密碼(由于/etc/passwd文件是所有用戶都可讀的,這樣就導致了用戶的密碼容易出現泄露,因此,linux將用戶的密碼信息從/etc/passwd中分離出來,單獨的放到了一個文件中,這個文件就是/etc/shadow,該文件只有root用戶擁有讀權限)

3/etc/group

用戶組配置文件,用戶組的所有信息都存放在此文件中

4/etc/login.defs

用來定義創建一個用戶時的默認設置(如:指定用戶的UID和GID的范圍,用戶的過期時間、是否需要創建用戶主目錄等等)

5/etc/default/useradd

定義了新建用戶的一些默認屬性(如:用戶的主目錄、使用的shell等等,通過更改此文件,可以改變創建新用戶的默認屬性值)

6/etc/skel

是目錄,定義了新建用戶在主目錄下默認的配置文件,更改/etc/skel目錄下的內容就可以改變新建用戶默認主目錄的配置文件信息

?1.2、Linux的用戶和用戶組操作命令

用戶和用戶組操作
序號用戶操作命令說明
1useradd

創建一個新的Linux用戶

語法:useradd [選項] 登錄名

常用選項如下:【其他的選項內容可用命令[useradd -h]查看】

《1》-u uid:用戶編號,此編號必須唯一;

《2》-g group:指定新建用戶登錄時所屬的默認組(主組)此用戶組必須已經存在;

《3》-G group:指定新建用戶的附加組,此群組必須已經存在(附加組是相對與主組而言的,當一個用戶同時是多個組中的成員時,登錄時的默認組成為主組,而其它組稱為附加組);

《4》-d home:指定新建用戶的默認主目錄(若不指定,系統會在/etc/default/useradd文件指定的目錄下創建用戶主目錄);

《5》-s shell:指定新建用戶使用的默認shell(若不指定,系統以/etc/default/useradd文件中定義的shell作為新建用戶的默認shell);

《6》-o uid:允許使用重復的 UID 創建用戶;

#示例1:新建一個名為testuser和testuser666的用戶
useradd testuser#示例2:新建一個testuser333的用戶且指定主組為testuser,附屬組為testuser666,主目錄為/opt/testuser33
useradd -g testuser -G testuser666 -d /opt/testuser333 testuser333#查看指定用戶的信息(如:查看testuser用戶的信息)
id testuser#修改指定用戶的密碼(如:修改testuser的密碼)【注意:用戶新建后需要設置密碼,不設置密碼是無法登陸的】
passwd testuser

2

usermod

修改已有的Linux用戶信息

語法:usermod [選項] 登錄名

常用選項如下:【其他的選項內容可用命令[usermod -h]查看】

《1》-u uid:指定用戶新的UID值,此值必須為唯一的ID值,除非用-o選項;

《2》-g group:修改用戶所屬的組名為新的用戶組名,此用戶組名必須已經存在;

《3》-G group:修改用戶所屬的附加組;

《4》-d 主目錄:修改用戶登錄時的主目錄;

《5》-s shell:修改用戶登錄系統后默認使用的shell;

《6》-o uid:允許使用重復的 UID 創建用戶;

《7》-L:鎖定用戶密碼,使密碼無效;

《8》-U:解除密碼鎖定;

#1-修改用戶的主組(如修改testuser333用戶的主組為testuser333)【注意:若用戶組不存在會報錯,需要先去創建用戶組】
usermod -g testuser333 testuser333#1.1-創建testuser333用戶組
groupadd testuser333#2-修改用戶的附屬組(如修改testuser333用戶的附屬組為testuser333)
usermod -G testuser testuser333#3-同時修改testuser333用戶的主組為testuser666,附屬組為testuser666和testuser
usermod -g testuser666 -G testuser666,testuser testuser333#4-鎖定指定用戶(讓改賬號不能登錄使用)【如鎖定testuser333用戶】
usermod -L testuser333#5-查看指定用戶的鎖定狀態(如:查看testuser333用戶的鎖定狀態)
passwd -S testuser333#6-解除指定用戶的鎖定(如解除testuser333用戶的鎖定)
usermod -U testuser333

3userdel

刪除指定用戶,若指定“-r”參數不但刪除用戶,同時刪除用戶的主目錄以及目錄下的所有文件

#1-只刪除指定用戶(如:只刪除testuser用戶)
userdel testuser#2-刪除指定用戶且刪除該用戶的主目錄
userdel -r testuser333

序號用戶組操作命令說明
1groupadd

添加新的用戶組

語法:groupadd [選項] 組
-g:指定新建用戶組的GID號,該GID號必須唯一(不能與其它用戶組的GID號重復)

#示例1:創建一個名為testgroup的用戶組且指定編號為1666
groupadd -g 1666 testgroup#示例2:創建一個名為testgroup2的用戶,且編號自動創建
groupadd testgroup2#查看指定的用戶組信息命令(如:查看testgroup用戶組信息)
cat /etc/group|grep testgroup

2newgrp主要用于在多個用戶組之間進行切換
3groupdel

刪除用戶組(若用戶組中仍包含某些用戶,則必須先刪除這些用戶后,然后才能刪除用戶組)

#示例:刪除指定的用戶組(testgroup)命令
groupdel testgroup

#將指定用戶從指定用戶組中移除方法一
gpasswd -d 需移除的用戶 需移除用戶的用戶組#示例:將testuser666用戶從root用戶組中移除
gpasswd -d testuser666 root#將指定用戶從指定用戶組中移除方法二(直接修改 /etc/group文件)
vi  /etc/group

?1.3、Linux中的權限及其切換用戶操作?

Linux中的用戶與權限操作https://coffeemilk.blog.csdn.net/article/details/149037758

二、Linux的環境變量

?2.1、Linux的常用環境變量及其操作

Linux的常用環境變量及其操作
序號環境變量操作命令內容說明
1查看環境變量env

可列出所有已經定義的環境變量內容

echo

查看環境變量的語法:echo $環境變量名稱

#示例1:查看系統環境變量內容
echo $PATH#示例2:查看shell內容
echo $SHELL#示例3:查看bash內容
echo $BASH

2常見環境變量常見系統環境變量:
PATH、PWD、BASH、LANG、USER、HOSTNAME、HOME、SHELL
3自定義環境變量export?

《1》可查看所有導出的的變量內容【export】

《2》定義并設置自定義變量

#示例1:直接定義變量testvar并設置值為testvalue
export testvar=testvalue#示例2:可以給自定義變量賦值然后在聲明
testvar2=666
export testvar2

注意:環境變量可以在命令行中設置,但用戶注銷時這些值將丟失,環境變量均為大寫,必須用export命令導出

4清除環境變量unset
#示例1:清除環境變量testvar
unset testvar#示例2:清除環境變量testvar2
unset testvar2

?2.2、Linux的環境變量文件

Linux的環境變量文件
序號環境變量文件說明
1/etc/profile

屬于全局環境變量配置文件

2

.bash_profile

.bashrc

屬于用戶環境變量文件

當某個Linux用戶登錄系統時,shell會首先執行系統默認的配置文件【/etc/profile】然后會自動執行【.bash_profile】文件,如果【.bash_profile】文件不存在,則接著讀取【~/.bashrc】文件
?Bash的初始化環境變量文件順序如下圖所示:

?2.3、添加環境變量

添加環境變量的操作
序號添加用戶環境變量的操作
1

打開需操作用戶主目錄下的【?.bash_profile】文件,然后添加需要配置的環境變量內容

#1-比如打開testuser用戶的主目錄【/home/testuser】下的【.bash_profile】文件進行編輯新增JAVAHOME環境
vi /home/testuser/.bash_profile#2-給testuser用戶的【.bash_profile】文件新增JAVAHOME內容后保存退出
export JAVA_HOME=/usr/local/jdk1.8.0_04
export PATH=$PATH:$JAVA_HOME/bin

2

配置文件環境變量文件后,執行source命令馬上生效

#1-讓指定用戶的配置文件立即生效
source /home/testuser/.bash_profile

環境變量配置文件使用原則:
1、與用戶相關的環境變量配置均配置到用戶目錄下面的配置文件中(.bash_profile、.bashrc);

2、需要對全局生效的環境變量配置,都配置到/etc/profile文件中;

三、sudo的權限配置解析及其使用

?3.1、sudo權限配置說明

sudo的權限配置說明

sudo命令的配置文件是【/etc/sudoers

注意一:編輯sudo命令的配置文件必須使用獨有的命令【visudo】打開操作,該工具會給你自動檢查語法內容;

注意二:不要使用vi或vim打開,否則一旦因為語法寫錯會造成嚴重的后果。

序號sudo配置及其說明
1
root ? ?ALL=(ALL) ? ? ? ALL

1、root 表示用戶;

2、ALL 表示從任何的主機上都可以執行(也可以是指定網段如:192.168.166.0/24);

3、(ALL) 是以誰的身份來執行,ALL表示代表root用戶可以以任何人的身份來執行命令;

4、ALL 表示任何命令;

這條規則配置的完整含義是【root用戶可以在任何主機以任何人的身份來執行所有的命令】

規則配置語法:【who where whom command】(即:是誰在什么位置以誰的身份執行什么命令)

2
coffeemilk? ?192.168.166.0/24=(root) /usr/sbin/useradd
這條配置表示【只允許coffeemilk用戶在 192.168.166.0/24 網段上連接主機并且以root權限執行useradd 命令】
3
www  ALL=(root)      NOPASSWD:ALL,!/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su

這條配置表示【允許www用戶可在任何主機上以root身份執行所有命令,且不用輸入密碼,可執行的所有命令中除了修改用戶密碼、不能修改root用戶密碼、不能使用su命令切換外的其他所有命令】該命令一般給應用程序配置用戶使用

4
%wheel  ALL=(ALL)       ALL

這條配置表示【允許wheel用戶組可在任意主機上以任何人的身份來執行所有命令】只用將用戶添加到這個組下就具有這個組的權限了;

注意:這條配置在centos7及其更高版本默認已經開放%wheel這一行,但是之前的centos版本沒有啟用

5
%wheel        ALL=(ALL)       NOPASSWD: ALL

這條配置表示【允許wheel用戶組可在任意主機上以任何人的身份來執行所有命令,并且不用輸入密碼】

?3.2、sudo權限配置使用

#編輯sudo文件
visudo /etc/sudoers#示例1:給testuser用戶配置sudo權限(只允許testuser用戶在192.168.1.1-192.168.1..254網段內以root身份執行任何命令,且需要輸入testuser用戶自己的密碼,除了不能修改所有用戶密碼和切換用戶)
testuser  192.168.1.0/24=(root)         ALL,!/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su

#編輯sudo文件
visudo /etc/sudoers#示例2:給testuser用戶配置sudo權限(只允許testuser用戶在192.168.1.1-192.168.1..254網段內以root身份執行任何命令,且不用輸入testuser用戶自己的密碼,除了不能修改所有用戶密碼和切換用戶)
testuser  192.168.1.0/24=(root)         NOPASSWD:ALL,!/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su

#示例3:將testuser333用戶添加到wheel組中,讓testuser333用戶擁有wheel組的權限
usermod -G wheel testuser333#將用戶testuser333從wheel用戶組中移除【注意:執行該命令在root用戶下執行,若在當前用戶下執行則需要退出該用戶后重新登錄后權限才會失效】
gpasswd -d testuser333 wheel

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

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

相關文章

圖解LeetCode:79遞歸實現單詞搜索

網格 (board): 單詞搜索 中等 給定一個 m x n 二維字符網格 board 和一個字符串單詞 word 。如果 word 存在于網格中,返回 true ;否則,返回 false 。 單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中“相鄰”…

2025 R3CTF

文章目錄EvalgelistSilent Profit&#xff08;復現&#xff09;Evalgelist <?phpif (isset($_GET[input])) {echo <div class"output">;$filtered str_replace([$, (, ), , ", "", "", ":", "/", "!&…

WebView JSBridge 無響應問題排查實錄 全流程定位橋接調用失效

在混合開發項目中&#xff0c;Web 頁面與 Native 的通信橋梁——JSBridge&#xff0c;承擔著極為關鍵的角色。它不僅讓網頁能調起原生功能&#xff08;分享、登錄、拍照等&#xff09;&#xff0c;也支持原生傳值、事件回調。 然而&#xff0c;當 JSBridge 調用“沒有響應”、c…

前端構建工具 Webpack 5 的優化策略與高級配置

前端構建工具 Webpack 5 的優化策略與高級配置 當你的項目啟動需要一分鐘&#xff0c;或者每次熱更新都像在“編譯整個宇宙”時&#xff0c;你可能已經意識到了一個問題&#xff1a;前端構建性能&#xff0c;正成為開發效率的瓶頸。Webpack 作為現代前端開發的基石&#xff0c;…

tun2socks原理淺析

tun2socks 的原理是將TUN 設備上的IP 數據包轉換為SOCKS 協議數據&#xff0c;然后通過SOCKS 代理服務器發送。簡單來說&#xff0c;它利用TUN 設備模擬一個虛擬網絡接口&#xff0c;將所有流經該接口的網絡流量重定向到SOCKS 代理&#xff0c;從而實現流量的代理轉發&#xff…

Go從入門到精通(22) - 一個簡單web項目-統一日志輸出

Go從入門到精通(21) - 一個簡單web項目-統一日志輸出 統一日志輸出 文章目錄Go從入門到精通(21) - 一個簡單web項目-統一日志輸出前言日志庫橫向對比zap 使用安裝依賴創建日志配置修改主程序的日志在處理函數中使用日志日志示例控制臺輸出文件輸出&#xff08;json&#xff09…

UI前端大數據處理新挑戰:如何高效處理實時數據流?

hello寶子們...我們是艾斯視覺擅長ui設計和前端數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!一、引言&#xff1a;從 “批處理” 到 “流處理” 的前端革命當股票 APP 因每秒接收 10 萬條行情數據…

【接口測試】08 Postman使用教程(帶案例)

目錄 一. Postman安裝 二. Postman使用 1. 創建項目 2. 創建集合 3. 設置變量 4. 創建測試用例 5. 數據驅動測試 6. 接口關聯 7. 斷言和封裝 8. 批量執行 9. 導出用例 10. 生成測試報告 一. Postman安裝 PostMan——安裝教程&#xff08;圖文詳解&#xff09;_postman安裝教程-…

從springcloud-gateway了解同步和異步,webflux webMvc、共享變量

webMVC和webFlux 這是spring framework提供的兩種不同的Web編程模型應用場景&#xff1a;用 WebMvc&#xff1a; 項目依賴 Servlet 生態、需要簡單同步代碼&#xff0c;或使用阻塞式數據庫&#xff08;如 MySQL JDBC&#xff09;。用 WebFlux&#xff1a; 需要高并發&#xff…

如何在 Pytest 中調用其他用例返回的接口參數?

回答重點在 Pytest 中&#xff0c;我們可以通過使用共享夾具&#xff08;fixtures&#xff09;來調用和復用其他用例返回的接口參數。在 Pytest 中&#xff0c;fixtures 提供了一種靈活且有組織的方式來共享測試數據或對象。具體步驟如下&#xff1a;1&#xff09;首先&#xf…

倒計時熔斷機制的出價邏輯

一、業務背景傳統競價機制中&#xff0c;“倒計時結束”是系統決定成交者的關鍵邏輯&#xff0c;但在實際中&#xff0c;最后3秒突然被搶價的情況極為常見&#xff0c;出現以下問題&#xff1a;用戶投訴平臺機制不公平&#xff1b;用戶出價但未成交&#xff0c;產生爭議訂單&am…

未來手機會自動充電嗎

未來手機實現?全自動充電&#xff08;無需人為干預&#xff09;?是技術發展的明確趨勢&#xff0c;目前已有部分技術落地&#xff0c;但要達到“隨時隨地無感補電”&#xff0c;仍需突破以下關鍵領域&#xff1a;一、已實現的技術&#xff08;當下可用的“半自動”充電&#…

MySQL高級篇(二):深入理解數據庫事務與MySQL鎖機制

引言在現代數據庫系統中&#xff0c;事務和鎖機制是確保數據一致性和完整性的兩大核心技術。無論是金融交易系統、電商平臺還是企業級應用&#xff0c;都離不開這些基礎功能的支持。本文將全面剖析數據庫事務的四大特性&#xff0c;深入探討MySQL中的各種鎖機制&#xff0c;幫助…

XML 指南

XML 指南 引言 XML(可擴展標記語言)是一種用于存儲和傳輸數據的標記語言,它具有高度的可擴展性和靈活性。在互聯網和軟件開發領域,XML被廣泛應用于數據交換、配置文件、文檔存儲等場景。本文將為您詳細介紹XML的基本概念、語法規則、應用場景以及開發技巧,幫助您全面了解…

Flink Watermark原理與實戰

一、引言Flink 作為一款強大的流處理框架&#xff0c;在其中扮演著關鍵角色。今天&#xff0c;咱們來聊聊 Flink 中一個極為重要的概念 —— Watermark&#xff08;水位線&#xff09;&#xff0c;它是處理亂序數據和準確計算的關鍵。接下來我們直入主題&#xff0c;首先來看看…

Rust Web 全棧開發(五):使用 sqlx 連接 MySQL 數據庫

Rust Web 全棧開發&#xff08;五&#xff09;&#xff1a;使用 sqlx 連接 MySQL 數據庫Rust Web 全棧開發&#xff08;五&#xff09;&#xff1a;使用 sqlx 連接 MySQL 數據庫項目創建數據庫準備連接請求功能實現Rust Web 全棧開發&#xff08;五&#xff09;&#xff1a;使用…

【zynq7020】PS的“Hello World”

目錄 基本過程 新建Vivado工程 ZYNQ IP核設置 使用SDK進行軟件開發 基于Vivado2017 Vivado工程建立 SDK調試 固化程序 注&#xff1a;Vivado 2019.1 及之前&#xff1a;默認使用 SDK Vivado 2019.2-2020.1&#xff1a;逐步過渡&#xff0c;支持 SDK 與 Vitis 并存 Vi…

希爾排序和選擇排序及計數排序的簡單介紹

希爾排序法又稱縮小增量法。希爾排序法的基本思想是&#xff1a;先選定一個整數gap&#xff0c;把待排序文件中所有數據分成幾個組&#xff0c;所有距離為gap的數據分在同一組內&#xff0c;并對每一組內的數據進行排序。然后gap減減&#xff0c;重復上述分組和排序的工作。當到…

Solid Edge多項目并行,浮動許可如何高效調度?

在制造企業的數字化設計體系中&#xff0c;Solid Edge 作為主流 CAD 工具&#xff0c;因其靈活的建模能力、同步技術和強大的裝配設計功能&#xff0c;廣泛應用于機械設備、零部件制造等行業的研發場景。隨著企業設計任務復雜化&#xff0c;多項目并行成為常態&#xff0c;Soli…

Flink cdc 使用總結

Flink 與 Flink CDC 版本兼容對照表Flink 版本支持的 Flink CDC 版本關鍵說明Flink 1.11.xFlink CDC 1.2.x早期版本&#xff0c;需注意 Flink 1.11.0 的 Bug&#xff08;如 Upsert 寫入問題&#xff09;&#xff0c;建議使用 1.11.1 及以上。Flink 1.12.xFlink CDC 2.0.x&#…