国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Linux服務器 > 正文

linux sudo命令詳解

2024-09-05 23:03:30
字體:
來源:轉載
供稿:網友

簡單的說,linux/201334.html">sudo 是一種權限管理機制,管理員可以授權于一些普通用戶去執行一些 root 執行的操作,而不需要知道 root 的密碼。

嚴謹些說,sudo 允許一個已授權用戶以超級用戶或者其它用戶的角色運行一個命令。當然,能做什么不能做什么都是通過安全策略來指定的。sudo 支持插件架構的安全策略,并能把輸入輸出寫入日志。第三方可以開發并發布自己的安全策略和輸入輸出日志插件,并讓它們無縫的和 sudo 一起工作。默認的安全策略記錄在 /etc/sudoers 文件中。而安全策略可能需要用戶通過密碼來驗證他們自己。也就是在用戶執行 sudo 命令時要求用戶輸入自己賬號的密碼。如果驗證失敗,sudo 命令將會退出。(注意,本文介紹的 sudo 命令運行在 ubuntu 14.04中。)

sudo 命令語法

sudo [-bhHpV][-s ][-u <用戶>][指令]

sudo [-klv]

參數

  -b  在后臺執行指令。

  -h  顯示幫助。

  -H  將HOME環境變量設為新身份的HOME環境變量。

  -k  結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼。

  -l  列出目前用戶可執行與無法執行的指令。

  -p  改變詢問密碼的提示符號。

  -s  執行指定的shell。

  -u  <用戶>  以指定的用戶作為新的身份。若不加上此參數,則預設以root作為新的身份。

  -v  延長密碼有效期限5分鐘。

  -V  顯示版本信息。

  -S  從標準輸入流替代終端來獲取密碼

sudo 程序相關文件

/etc/sudoers/etc/init.d/sudo/etc/pam.d/sudo/var/lib/sudo/usr/share/doc/sudo/usr/share/lintian/overrides/sudo/usr/share/bash-completion/completions/sudo/usr/bin/sudo/usr/lib/sudo

基本配置

系統默認創建了一個名為 sudo 的組。只要把用戶加入這個組,用戶就具有了 sudo 的權限。
至于如何把用戶加入 sudo 組,您可以直接編輯 /etc/group 文件,當然您得使用一個有 sudo 權限的用戶來干這件事:

$ sudo vim /etc/group

在 sudo 組中加入新的用戶,要使用逗號分隔多個用戶。

linux,sudo,sudo命令使用,linux的sudo命令

或者您可以使用 usermod 命令把用戶添加到一個組中:

$ sudo usermod -a -G sudo jack

上面的設置中我們把用戶 jack 添加到了 sudo 組中,所以當用戶 jack 登錄后就可以通過 sudo 命令以 root 權限執行命令了!

詳細配置

在前面的配置中我們只是把用戶 jack 加入了 sudo 組,他就具有了通過 root 權限執行命令的能力。

現在我們想問一下,這是怎么發生的?是時候介紹如何配置 sudo 命令了!

sudo 命令的配置文件為 /etc/sudoers。(注意,/etc/sudoers 的配置內容十分豐富,我們僅做簡單的介紹。要了解更多信息,請參考 man sudoers。)

編輯這個文件是有單獨的命令的 visudo(這個文件我們最好不要使用 vim 命令來打開),是因為一旦你的語法寫錯會造成嚴重的后果,這個工具會替你檢查你寫的語法,這個文件的語法遵循以下格式:

who where whom command

說白了就是哪個用戶在哪個主機以誰的身份執行那些命令,那么這個 where, 是指允許在那臺主機 ssh 連接進來才能執行后面的命令,文件里面默認給 root 用戶定義了一條規則:

root    ALL=(ALL:ALL)       ALL

root    表示 root 用戶。

ALL     表示從任何的主機上都可以執行,也可以這樣 192.168.100.0/24。

(ALL:ALL)   是以誰的身份來執行,ALL:ALL 就代表 root 可以任何人的身份來執行命令。

ALL     表示任何命令。

那么整條規則就是 root 用戶可以在任何主機以任何人的身份來執行所有的命令。

現在我們可以回答 jack 為什么具有通過 root 權限執行命令的能力了。打開 /etc/sudoers 文件:

linux,sudo,sudo命令使用,linux的sudo命令

sudo 組中的所有用戶都具有通過 root 權限執行命令的能力!

再看個例子:

nick  192.168.10.0/24=(root) /usr/sbin/useradd

上面的配置只允許 nick 在 192.168.10.0/24 網段上連接主機并且以 root 權限執行 useradd 命令。

設置 sudo 時不需要輸入密碼

執行 sudo 命令時總是需要輸入密碼事件很不爽的事情(拋開安全性)。有些應用場景也需要在執行 sudo 時避開輸入密碼的交互過程。

那么需要如何設置呢?其實很簡單,只需要在配置行中添加 NOPASSWD: 就可以了:

******  ALL=(ALL) NOPASSWD: ALL

再試試看,是不是已經不需要輸入密碼了?

sudo 的日志

在 ubuntu 中,sudo 的日志默認被記錄在 /var/log/auth.log 文件中。當我們執行 sudo 命令時,相關日志都是會被記錄下來的。比如下圖中顯示的就是一次執行 sudo 命令的日志:

linux,sudo,sudo命令使用,linux的sudo命令

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿拉善右旗| 河北省| 霍林郭勒市| 上杭县| 昌都县| 黑龙江省| 高邑县| 桦川县| 高邑县| 宝丰县| 平湖市| 肇东市| 宜昌市| 黑水县| 睢宁县| 赫章县| 藁城市| 崇阳县| 临泽县| 正镶白旗| 高碑店市| 崇左市| 师宗县| 蓬溪县| 八宿县| 县级市| 洛扎县| 临高县| 常州市| 都匀市| 丰宁| 岳阳县| 微山县| 托克逊县| 青神县| 平南县| 广东省| 宿迁市| 吉林省| 富川| 武威市|