成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux 中的 su 和 sudo 命令有什么區別?

系統 Linux
本文將比較非 root 用戶提權為 root 用戶的兩個 Linux 命令 的區別。

??su??? 和 ??sudo??? 命令都允許用戶執行非特權用戶不允許做的系統管理任務,即只有 root 用戶能執行的命令。有些人更喜歡 ??sudo??? 命令:例如 ??Seth Kenlon??? 最近發布的一篇 《??在 Linux 上使用 sudo 的 5 個理由???》,他在其中詳細闡述了 ??sudo?? 命令的許多優點。

但是,相較于 ??sudo?? 命令,我更偏好于 ??su??? 命令 來做系統管理工作。在本文中,我比較了這兩個命令的區別,并解釋了為什么我更喜歡 ??su?? 而不是 ??sudo??,但我仍然同時使用這兩個命令的原因。

過去的系統管理員主要使用 su 命令

??su?? 和 ??sudo?? 命令是為不同的世界設計的。早期的 Unix 計算機需要全職系統管理員,他們使用 root 用戶作為唯一的管理帳戶。在這個古老的世界里,有管理員密碼的人會在電傳打字機或 CRT 終端(例如 DEC VT100)上以 root 用戶登錄,然后執行一些管理 Unix 計算機的工作。

管理員還會有一些非 root 帳戶,用于執行一些非 root 的任務,例如編寫文檔和管理電子郵件等。在這些 Unix 計算機上通常有許多非 root 帳戶,他們都不需要完全的 root 訪問權限,只需要以 root 權限運行很少的命令,大約 1 至 2 個就可以了。許多系統管理員以 root 用戶登錄,完成 root 工作,并在任務完成后,退出 root 會話。有時候,系統管理員需要整天以 root 用戶來登錄,因為 ??sudo?? 命令需要鍵入更多的內容才能運行必要的命令,因此大多數系統管理員很少使用 ??sudo?? 命令。

??sudo?? 和 ??su?? 這兩個命令都能夠提權為 root 用戶,但它們實現的方式大不相同。這種差異是由于它們最初打算用于不同的情況

sudo 命令

??sudo?? 命令的初衷是讓 root 用戶能夠讓幾個非 root 用戶訪問他們經常需要的一兩個特權命令。??sudo?? 命令允許非 root 用戶暫時地獲得更高權限,來執行一些特權命令,例如添加和刪除用戶、刪除屬于其他用戶的文件、安裝新軟件以及管理現代 Linux 主機所需的任何命令。

??sudo?? 命令允許非 root 用戶訪問一兩個 需要更高權限 的常用命令,這樣可以幫助系統管理員節省來自用戶的許多請求,并減少等待時間。??sudo?? 命令不會將用戶帳戶切換為 root 用戶,因為大多數非 root 用戶永遠不應該擁有完全的 root 訪問權限。在大多數情況下,??sudo?? 允許用戶執行一兩個命令,然后提權就會過期。在這個通常為 5 分鐘的短暫的提權時間內,用戶可以執行任何需要提權的管理命令。需要繼續使用提權的用戶可以運行 ??sudo -v?? 命令來重新驗證 root 訪問權限,并將提權時間再延長 5 分鐘。

使用 ??sudo?? 命令還有一些副作用,例如生成非 root 用戶使用命令的日志條目及其 ID。這些日志可以在之后作為出現問題的檢驗,來給用戶更多的操作培訓。(你以為我會說“問責”用戶,對吧?)

su 命令

??su?? 命令能夠將非 root 用戶提權到 root 權限 —— 事實上,能讓非 root 用戶成為 root 用戶。唯一的要求是用戶知道 root 密碼。因為用戶已經以 root 權限登錄,所以之后的操作就沒有限制了。

??su?? 命令所提供的提權沒有時間限制。用戶可以作為 root 執行命令,不需要進行重新驗證是否有 root 權限。完成任務后,用戶可以執行退出命令 ??exit??,從 root 用戶恢復到自己原來的非 root 帳戶。

su 和 sudo 在使用上的爭議和變化

最近在 ??su?? 與 ??sudo?? 的使用上存在一些分歧。

真正的系統管理員不會使用 ??sudo??。—— Paul Venezia

Venezia 在他的 ??InfoWorld 文章?? 中辯稱,對于許多擔任系統管理員的人來說,??sudo?? 是一個不必要的工具。他沒有花太多時間為這個觀點進行解釋,他只是把它說成了一個事實。我同意他對于系統管理員的觀點,因為我們不需要 ??sudo?? 來完成我們的工作。事實上,??sudo?? 使得事情變得更復雜了。

然而,

時代在“改變”。—— Bob Dylan

Bob Dylan 是對的,盡管他唱的歌不是指計算機(LCTT 譯注:Bob Dylan 是美國創作歌手、藝術家和作家,這里指他不是針對于電腦而說的)。

自從人手一臺的個人計算機時代到來,計算機的管理方式發生了重大變化。在許多環境中,計算機的使用者也是它的管理員,這使得為這些用戶提供一些對 root 權限的訪問是有必要的。

一些現代發行版,例如 Ubuntu 及其衍生版本,只能使用 ??sudo?? 命令來執行特權命令。在這些發行版中,用戶無法直接以 root 用戶身份登錄,甚至無法通過 ??su?? 切換到 root,因此需要 ??sudo?? 命令來允許非 root 用戶獲得 root 權限。在這一環境中,所有系統管理任務均使用 ??sudo?? 來執行。

通過鎖定 root 帳戶并將常規用戶帳戶添加到“輪子”組(??wheel??),可以實現此配置,但是這種配置很容易被繞過。接下來,讓我們在 Ubuntu 主機或虛擬機上嘗試一些小實驗吧。我在這里說明一些我的設置,以便你可以根據需要來重現它。我安裝的是 Ubuntu 16.04 LTS1,并使用 VirtualBox 將其安裝在虛擬機中。在安裝過程中,我創建了一個非 root 用戶 ??student??,為了簡便起見我給這個用戶設置了一個簡單的密碼。

以 ??student?? 用戶身份登錄 Ubuntu,并打開終端。查看 ??/etc/shadow?? 文件中的 root 條目,其中存儲了經哈希的密碼。

    student@ubuntu1:~$ cat /etc/shadow
cat: /etc/shadow: Permission denied

可以看到終端拒絕了我們對 ??/etc/shadow?? 的訪問,因此我們無法查看 ??/etc/shadow?? 文件。所有發行版都是如此,以防止非特權用戶看到和訪問加密的密碼,因為非特權用戶可能會使用常見的黑客工具來破解這些密碼。

現在,讓我們使用 ??su -?? 命令來成為 root 用戶。

    student@ubuntu1:~$ su -
Password: <Enter root password – but there isn't one>
su: Authentication failure

認證失敗的原因是因為 root 帳戶沒有密碼、并且被鎖定了。接下來,使用 ??sudo??? 命令查看 ??/etc/shadow?? 文件。

    student@ubuntu1:~$ sudo cat /etc/shadow
[sudo] password for student: <enter the student password>
root:!:17595:0:99999:7:::
<截取>
student:$6$tUB/y2dt$A5ML1UEdcL4tsGMiq3KOwfMkbtk3WecMroKN/:17597:0:99999:7:::
<截取>

在這里,我僅截取了部分結果,只顯示 root 和 ??student?? 用戶的條目。我還縮短了加密密碼,以便該條目能顯示在一行中。各個字段以冒號(??:??)分隔,第二個字段是密碼。請注意,root 的密碼字段是一個感嘆號(??!??),這表明 root 帳戶已被鎖定,且無法使用。

現在,要將 root 帳戶變成一個合適的系統管理員,你只需為 root 帳戶設置密碼。

    student@ubuntu1:~$ sudo su -
[sudo] password for student: <Enter password for student>
root@ubuntu1:~# passwd root
Enter new UNIX password: <Enter new root password>
Retype new UNIX password: <Re-enter new root password>
passwd: password updated successfully
root@ubuntu1:~#

現在,你可以直接以 root 身份登錄到控制臺,或者直接使用 ??su?? 登錄到 root,而不是在每個命令前都加一個 ??sudo??。當然,你也可以在每次想以 root 身份登錄時,使用 ??sudo su -??,但這又是何必呢?

請不要誤解我的意思。像 Ubuntu 這樣的發行版及其上下游衍生版非常好,多年來我已經使用了其中的幾個。在使用 Ubuntu 和相關發行版時,我做的第一件事就是設置一個 root 密碼,這樣我就可以直接以 root 身份登錄。其他發行版,如 Fedora 及其相關發行版,現在在安裝過程中提供了一些有趣的選擇。我注意到的第一個 Fedora 版本是 Fedora 34,我在寫我的一本即將出版的書時安裝了很多次。

在安裝頁面上,可以找到其中一個安裝選項,來設置 root 密碼。這個新選項允許用戶選擇“鎖定 root 帳戶Lock root account”,就像 Ubuntu 鎖定 root 帳戶的方式一樣。此頁面上還有一個選項,允許使用密碼以 root 身份遠程 SSH 登錄到此主機,但這僅在 root 帳戶解鎖時有效。第二個選項位于允許創建非 root 帳戶的頁面上。此頁面上的選項之一是“讓此用戶成為管理員Make this user administrator”。選中此選項后,用戶 ID 將添加到一個名為 ??wheel?? 組的特殊組中,該組授權該組的成員使用 ??sudo?? 命令。Fedora 36 甚至在該復選框的描述中提到了 ??wheel?? 組。

可以將多個非 root 用戶設置為管理員。使用此方法指定為管理員的任何人都可以使用 ??sudo?? 命令在 Linux 計算機上執行所有管理任務。Linux 在安裝時只允許創建一個非 root 用戶,所以其他新用戶可以在創建時添加到 ??wheel?? 組中。root 用戶或其他管理員可以使用文本編輯器或 ??usermod?? 命令直接將現有用戶添加到 ??wheel?? 組。

在大多數情況下,今天的管理員只需要執行一些基本任務,例如添加新的打印機、安裝更新或新軟件,或者刪除不再需要的軟件。這些 GUI 工具需要 root 或管理密碼,并將接受來自管理員用戶的密碼。

在 Linux 上,我是怎么使用 su 和 sudo 的呢

同時使用 ??su??? 和 ??sudo??。它們都是我所使用的很重要的系統管理員工具。

我不鎖定 root 帳戶,因為我需要用 root 帳戶來運行我的 ??Ansible?? 腳本和我編寫的 ??rsbu?? Bash 程序,來執行備份。這兩個程序都需要以 root 身份運行,我編寫的其他幾個管理 Bash 的腳本也是如此。我使用 ??su??? 命令切換到 root 用戶,這樣我就可以執行這些腳本和許多其他常見的命令。當我需要確定問題和解決問題時,使用 ??su?? 命令將我的權限提升到 root 十分有用,因為我不希望 ??sudo?? 帶來的提權會話超時。

當非 root 用戶需要執行這些任務時,我使用 ??sudo??? 命令,來執行需要 root 權限的任務。我在 ??sudoers?? 文件中設置了非 root 帳戶,只允許訪問完成任務所需的一兩個命令。當我只需要運行一兩個需要提權的快速命令時,我自己也會使用 ??sudo?? 命令。

結論

實際上只要你把工作完成好了,你使用什么工具都無大礙。你使用的是 Vim 還是 Emacs,是 systemd 還是 SystemV,是 RPM 亦或是 DEB,是 ??sudo?? 亦或是 ??su??,在結果上會有什么區別呢?這里的關鍵在于你應該使用最適合你的工具。Linux 和開源軟件的最大優勢之一是通常有許多選項可用于我們需要完成的任務。

??su?? 和 ??sudo?? 都各有長處,如果正確使用的話,兩者都是非常安全的。我選擇同時使用 ??su?? 和 ??sudo?? 命令,基于它們的歷史功能,因為這對我來說十分有用。對于我自己的大部分工作,我更喜歡 ??su?? 命令,因為它與我的工作流程最適配。

本文摘自于我的書《系統管理員的 Linux 哲學The Linux Philosophy for Sysadmins(Apress,2018 年)》一書的第 19 章,并經許可后重新發布。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2021-11-01 10:05:32

Linuxsusudo

2018-09-04 10:04:13

Linux命令sudo

2022-07-12 10:58:49

Linuxsusudo

2022-09-08 18:38:26

LinuxWindowsmacOS

2022-08-31 08:33:54

Bash操作系統Linux

2018-07-20 14:00:51

LinuxmacOS內核

2020-08-02 23:20:36

JavaScriptmap()forEach()

2025-04-27 08:15:00

FlinkSavepointCheckpoint

2021-03-27 10:56:17

promisethenfinally

2022-09-02 09:02:44

TypeInterface

2020-03-09 20:56:19

LoRaLoRaWAN無線技術

2022-09-07 18:32:57

并發編程線程

2020-11-09 14:07:53

PyQtQt編程

2022-06-06 14:53:02

LoRaLoRaWAN

2023-11-01 08:08:47

PythonIS運算符

2024-05-27 00:40:00

2022-02-27 15:33:22

安全CASBSASE

2021-12-17 14:40:02

while(1)for(;;)語言

2021-05-16 14:26:08

RPAIPACIO

2024-03-05 18:59:59

前端開發localhost
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧洲在线视频 | av黄色免费在线观看 | 日韩精品区 | 中文字幕第一页在线 | 五月香婷婷 | 亚洲国产成人精品一区二区 | 九九久久精品 | 久久久www成人免费无遮挡大片 | 97人人草 | 国产精品久久久久无码av | 高清久久久 | 精品久久久久久久 | 精品一区二区三 | 天堂色| 精品国产乱码久久久久久老虎 | 久久精品91久久久久久再现 | 99久久婷婷国产综合精品首页 | 国产高清精品一区二区三区 | 久草免费在线视频 | 成人综合视频在线观看 | 国产精品无码专区在线观看 | 亚洲国产成人一区二区 | av片毛片 | 在线亚洲一区二区 | 国产一区二区三区在线 | 羞羞网站在线免费观看 | 精品国产乱码久久久久久牛牛 | 黄色欧美视频 | 中文字幕亚洲精品 | 男人的天堂亚洲 | www成人免费 | 亚洲一区二区免费视频 | 成人精品一区二区三区 | 射欧美 | 久久1区| 国产精品久久精品 | 亚洲精品小视频在线观看 | 免费在线观看一区二区 | 特级做a爰片毛片免费看108 | 成人无遮挡毛片免费看 | 国产精品99视频 |