Linux_sudo命令的使用與機制

1、sudo命令的作用

sudo(全稱 superuser do)是 Linux/Unix 系統中權限管理的核心工具。
允許普通用戶在授權下以其他用戶(默認是 root)的權限執行命令,而無需直接登錄賬戶。


2、sudo命令的典型使用場景

sudo 覆蓋了系統管理的幾乎所有高權限操作場景,以下是常見示例:

2.1、安裝/卸載軟件

sudo apt-get install nginx  # Ubuntu/Debian系安裝 
sudo yum remove httpd  		# CentOS/RHEL系卸載 

2.2、管理系統服務

sudo systemctl start nginx  	# 啟動Nginx服務  
sudo systemctl restart mysql  	# 重啟MySQL服務  

2.3、修改系統配置文件

sudo nano /etc/nginx/nginx.conf  # 編輯Nginx主配置文件 

2.4、 管理用戶與權限

sudo adduser newuser  # 添加新用戶 
sudo passwd olduser  # 修改指定用戶密碼 

3、sudo命令的選項

sudo 除了無選項以root用戶執行指令的操作,還支持許多其他的選項,可靈活控制執行環境、目標用戶等。

以下是常用選項的介紹:

3.1、 -u <用戶>:指定目標用戶

通過 -u 選項可指定其他目標用戶。

示例

# 以 `www-data` 用戶身份查看 Nginx 日志(需 `sudoers` 授權)  
sudo -u www-data cat /var/log/nginx/access.log  

3.2、-i--login):模擬目標用戶的登錄環境

-i--login):模擬目標用戶的登錄環境,加載其完整的登錄配置文件(如 ~/.bash_profile、~/.profile),并切換到目標用戶的家目錄。

示例

# 以 root 身份模擬登錄環境(需輸入當前用戶密碼)  
sudo -i

效果等同于 su - 目標用戶 后執行命令,關于su命令看這篇文章:Linux_su命令

3.3、-s--shell):啟動目標用戶的 shell

-s--shell):啟動目標用戶的非登錄交互式 shell,僅加載非登錄配置文件(如 ~/.bashrc),保持原用戶的當前工作目錄。

示例

# 以 root 身份啟動 shell(需輸入當前用戶密碼)  
sudo -s  

3.4、-l--list):查看當前用戶的 sudo 權限

-l 可列出當前用戶被允許執行的 sudo 命令(需輸入密碼驗證身份)。

示例

user@host:~$ sudo -l  
Matching Defaults entries for user on host:  env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin  User user may run the following commands on host:  (ALL : ALL) ALL  # 允許以所有用戶執行所有命令  

3.5、-k--reset-timestamp):重置密碼緩存

sudo 默認會緩存用戶密碼(通常 15 分鐘),期間無需重復輸入。-k 強制清除緩存,下次使用 sudo 需重新輸入密碼。

示例

sudo -k  		# 清除當前用戶的 sudo 密碼緩存  

4、sudo 的核心機制

sudo 的核心是 基于用戶/組的權限授權,所有權限規則存儲在 /etc/sudoers 文件中。

其工作流程如下:

  1. 用戶執行 sudo 命令
  2. 系統檢查 /etc/sudoers,確認當前用戶是否有權限以目標用戶(默認 root)執行該命令;
  3. 若有權限,用戶需輸入自己的密碼(非目標用戶密碼)驗證身份;
  4. 驗證通過后,命令以目標用戶權限執行,操作記錄被寫入系統日志(如 /var/log/auth.log)。

4.1、sudo 的核心配置文件:/etc/sudoers

sudoers必須通過 visudo 命令編輯,可以自動檢查語法錯誤,避免文件損壞導致無法使用 sudo.

sudoers中最核心的部分是權限規則,格式為:

用戶/用戶組  主機=(目標用戶:目標組)  允許執行的命令  

示例1

root    ALL=(ALL:ALL) ALL

表示root用戶可以在任何主機上以任何用戶和任何組的身份執行任何命令。

示例2

%sudo ALL=(ALL:ALL) ALL

%符號:表示 “用戶組”(Group),而非單個用戶。
這條配置表示“sudo組的成員“可以在 任何主機上 以任何用戶和任何組的身份執行任何命令。

sudo組 是Ubuntu等系統的默認特權組,普通用戶加入此組后即可通過 sudo 執行高權限命令。

4.2、sudo 的其他配置文件:/etc/sudoers.d/

下圖截取自/etc/sudoers,可以看到,不建議直接修改該文件,可以將自定義配置的內容放在/etc/sudoers.d/目錄下,并且使用了@includedir去包含了這個目錄。
在這里插入圖片描述

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

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

相關文章

Scrapy框架之 中間件的使用

爬蟲中間件 特點&#xff1a;主要處理蜘蛛&#xff08;Spider&#xff09;和下載器&#xff08;Downloader&#xff09;之間的請求和響應。可以對蜘蛛生成的請求進行攔截、修改或過濾&#xff0c;也可以對下載器返回給蜘蛛的響應進行處理。適用場景&#xff1a; 請求過濾與修改…

供應鏈算法整理(一)--- 銷量預估

在供應鏈管理領域有較多的預估場景&#xff0c;例如送達時長預估、銷量預估、用電量預估。特別的在智能供應鏈領域&#xff0c;銷量和庫存的管理的智能化也依賴銷量預估&#xff0c;因此在本文我們整理了 銷量預估的算法詳細的技術方案。 時間序列預測在最近兩年內發生了巨大的…

第4篇:服務層抽象與復用邏輯

在業務系統復雜度指數級增長的今天&#xff0c;服務層&#xff08;Service Layer&#xff09;的合理設計直接影響著系統的可維護性和擴展性。本文將深入剖析 Egg.js 框架中的服務層架構設計&#xff0c;從基礎實現到高級封裝&#xff0c;全方位講解企業級應用的開發實踐。 一、…

Java學習手冊:Spring 數據訪問

一、Spring JDBC JdbcTemplate &#xff1a;Spring JDBC 提供了 JdbcTemplate 類&#xff0c;它簡化了數據庫操作&#xff0c;提供了豐富的 API 來執行數據庫訪問任務。JdbcTemplate 可以自動處理數據庫連接的獲取、釋放&#xff0c;SQL 語句的執行&#xff0c;結果集的處理等…

遞歸、搜索和回溯算法《遞歸》

在之前的優選算法當中我們已經學習了一些基本的算法&#xff0c;那么接下來我們就要來學習算法當中的一大重要章節——遞歸、搜索和回溯算法&#xff0c;其實也就是大家常常聽到的dfs、bfs&#xff1b;其實本質就是遞歸&#xff0c;在學習搜索、回溯等算法的過程當中我們會先來…

Java進階--設計模式

設計模式是一套被反復使用的、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。設計模式使代碼編制真正工程化&#xff0c;設計模式是軟件工程的基石&#xff0c;如同大廈的一塊塊磚石一樣&#xff0…

如何禁止AutoCAD這類軟件聯網

推薦二、三方法&#xff0c;對其他軟件影響最小 一、修改Hosts文件 Hosts文件是一個存儲域名與IP地址映射關系的文本文件&#xff0c;通過修改Hosts文件可以將AutoCAD的域名指向本地回環地址&#xff08;127.0.0.1&#xff09;&#xff0c;從而實現禁止聯網的目的。具體步驟如…

深度學習框架搭建(Vscode/Anaconda/CUDA/Pytroch)

目錄 ??????一 Vscode安裝 二、Anaconda安裝 三、更新顯卡驅動 四、安裝CUDA 五、安裝Pytorch 六、Vscode配置 七、出現的問題匯總 ??????一 Vscode安裝 在 Windows 上安裝 訪問 VS Code 官網 https://code.visualstudio.com/&#xff0c;點擊 "Downl…

結構模式識別理論與方法

我們在前文《模式識別的基本概念與理論體系》中就已經提及“模式分類”。 具體內容看我的CSDN文章&#xff1a;模式識別的基本概念與理論體系-CSDN博客 模式的識別方法主要有統計模式識別方法和結構模式識別方法兩大類。統計模式識別方法提出得較早&#xff0c;理論也較成熟…

12.多邊形的三角剖分 (Triangulation) : Fisk‘s proof

目錄 1.Fisks proof Trangulation Coloring Domination Pigeon-Hold Principle Generation 2.Orthogonal Polygons (正交多邊形) Necessity of floor(n4) Sufficiency by convex Quadrilateralization Generalization 1.Fisks proof Trangulation 引入內對角線&…

面經-計算機網絡——OSI七層模型與TCP/IP四層模型的對比詳解

OSI七層模型與TCP/IP四層模型的對比詳解 一、圖示解析&#xff1a;分層封裝結構 你提供的圖清晰展示了網絡通信中從應用層到物理層的封裝過程&#xff0c;每一層都會對上層的數據加上自己的頭部信息&#xff08;Header&#xff09;&#xff1a; 應用層&#xff1a; 應用…

React Native本地存儲方案總結

1. AsyncStorage&#xff08;鍵值對存儲&#xff09; 適用場景&#xff1a;簡單鍵值對存儲&#xff08;如用戶配置、Token、緩存數據&#xff09;。特點&#xff1a;異步、輕量、API 簡單&#xff0c;但性能一般&#xff0c;不推薦存儲大量數據。安裝&#xff1a;npm install …

Arduino程序函數詳解與實際案例

一、Arduino程序的核心架構與函數解析 Arduino程序的核心由兩個函數構成:setup() 和 loop()。這兩個函數是所有Arduino代碼的骨架,它們的合理使用決定了程序的結構和功能。 1.1 setup() 函數:初始化階段 setup() 函數在程序啟動時僅執行一次,用于完成初始化配置,例如設置…

【Unity】使用Socket建立客戶端和服務端并進行通信的例子

Socket服務端: using System; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; public class SocketServer { public static Socket listenSocket;//監聽Socket public static List<Socket>…

Qt connect第五個參數

在 Qt 中&#xff0c;QObject::connect 函數的第五個參數用于指定 連接類型&#xff08;Qt::ConnectionType&#xff09;&#xff0c;它決定了信號與槽之間的通信方式。以下是各枚舉值的詳解及使用場景&#xff1a; 1. Qt::AutoConnection&#xff08;默認值&#xff09; 行為…

【2025域適應科研日報】

本筆記主要為了記錄自己的科研日報&#xff0c;前段時間剛開始想寫的初衷也是為了自己的思考不跑偏&#xff0c;但是有幾天又沒有堅持下來&#xff0c;看到一位學長的文章&#xff0c;發現這種形式還是很有必要的&#xff0c;所以自己也打算堅持記錄下來&#xff0c;由于還正在…

XrayR啟動失敗

公司要用服務器之間進行數據加密&#xff0c;這里用的XrayR 我使用的Centos 7。 我這里使用一鍵腳本安裝后&#xff0c;/etc/XrayR目錄下沒有配置文件。 解決方案 XrayR安裝時&#xff0c;系統沒有unzip工具&#xff0c;也是會安裝失敗的&#xff0c;因為Centos7已經停止維…

鴻蒙文件上傳-從前端到后端詳解,對比jq請求和鴻蒙arkts請求區別,對比new FormData()和鴻蒙arktsrequest.uploadFile

需要權限&#xff1a;ohos.permission.INTERNET 1.nodejs自定義書寫上傳后端接口 傳輸過來的數據放在files?.image下 router.post(/upload,(req, res) > {var form new multiparty.Form();form.uploadDirpublic/images/uploads; //上傳圖片保存的地址(目錄必須存在)fo…

編寫教育網站后端頁面筆記

callbacktitle.html 對應表: 對應的功能: 控制器層數據: 頁面沒有寫內容 chapter.html 對應表: questionbank ,intofloortime,questionBank,title,didtitles,option,answer,analyse 對應的功能:問題反饋頁面 控制器層數據(控制器類): ChapterQuestionbankTitle c…

日常開發小Tips:后端返回帶顏色的字段給前端

一般來說&#xff0c;展示給用戶的字體格式&#xff0c;都是由前端控制&#xff0c;展現給用戶&#xff1b; 但是當要表示某些字段的數據為異常數據&#xff0c;或者將一些關鍵信息以不同顏色的形式呈現給用戶時&#xff0c;而前端又不好判斷&#xff0c;那么就可以由后端來控…