自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux su與sudo有何區(qū)別?

譯文
開源
su和sudo各有優(yōu)點(diǎn),適當(dāng)用于預(yù)期的用例時,兩者都表現(xiàn)不俗

su命令和sudo命令都讓用戶可以執(zhí)行非特權(quán)用戶(除root用戶之外的所有人)無權(quán)執(zhí)行的系統(tǒng)管理任務(wù)。一些人偏愛sudo命令,比如Seth Kenlon最近發(fā)表了《在Linux上使用sudo的五個理由》,該文盛贊sudo的諸多優(yōu)點(diǎn)。

另一方面,我偏愛su命令,更喜歡用它而不是用sudo來處理我從事的大部分系統(tǒng)管理工作。我在本文中比較了這兩個命令,解釋了為什么我更喜歡su而不是sudo,但仍然同時使用這兩個命令。

系統(tǒng)管理員的歷史觀點(diǎn) 

su命令和sudo命令是為不同的世界設(shè)計的。早期的Unix計算機(jī)需要全職系統(tǒng)管理員,他們使用root帳戶作為唯一的管理帳戶。在那個時代,擁有root密碼的人以root身份登錄電傳打字機(jī)或CRT終端,然后執(zhí)行管理Unix計算機(jī)所必需的管理任務(wù)。root用戶也會擁有非root帳戶來處理非root活動,比如編寫文檔和管理個人電子郵件。

這些計算機(jī)上通常有許多非root用戶帳戶,這些用戶都不需要全面的root訪問權(quán)。用戶可能需要以root身份運(yùn)行一兩個命令,但很少這樣。許多系統(tǒng)管理員以root身份登錄,完成工作后退出root會話。有時需要整天保持以root身份登錄的狀態(tài)。大多數(shù)系統(tǒng)管理員之所以很少使用sudo,是由于它需要輸入比運(yùn)行基本命令所需的更多內(nèi)容。這些工具都可以提升權(quán)限,但方式大不相同。這種差異歸因于它們最初面向不同的用例。

sudo

sudo的初衷是讓root用戶能夠向一兩個非root用戶授予這一權(quán)限:訪問他們經(jīng)常需要的一兩個特定命令。sudo命令使非root用戶可以臨時訪問執(zhí)行任務(wù)所需的提升權(quán)限,比如添加和刪除用戶、刪除屬于其他用戶的文件、安裝新軟件以及通常管理現(xiàn)代Linux主機(jī)所需的任何任務(wù)。

允許用戶訪問需要提升權(quán)限的一兩個常用命令可以讓系統(tǒng)管理員避免用戶的大量請求,并消除等待時間。sudo命令并不將用戶帳戶切換成root;大多數(shù)非root用戶永遠(yuǎn)不應(yīng)該擁有全面的root訪問權(quán)。在大多數(shù)情況下,sudo讓用戶可以發(fā)出一兩個命令,然后允許權(quán)限提升到期失效。在這個短暫的間隔(通常設(shè)置為5分鐘),用戶可以執(zhí)行任何需要提升權(quán)限的必要管理任務(wù)。如果用戶需要繼續(xù)使用提升的權(quán)限,但尚未準(zhǔn)備好發(fā)出另一個與任務(wù)相關(guān)的命令,可以運(yùn)行sudo -v命令,重新驗(yàn)證登錄信息,并將間隔時間再延長5分鐘。

使用sudo命令確實(shí)有這個副作用:生成非root用戶使用的命令的日志條目及其ID。日志便于事后分析問題,以確定用戶何時需要加強(qiáng)培訓(xùn)。

su

su命令旨在允許非root用戶將權(quán)限級別提升到root——實(shí)際上就是非root用戶成為root用戶。唯一的要求是用戶需要知道root密碼。這方面沒有任何限制,因?yàn)橛脩衄F(xiàn)在以root身份登錄。su命令提供的權(quán)限提升沒有時間限制。用戶以root身份想工作多久就可以多久,無需重新驗(yàn)證身份。完成工作后,用戶可以發(fā)出exit命令,從root恢復(fù)到自己的非root帳戶。

爭議和變化 

最近su與sudo的使用存在一些分歧。“真正的[系統(tǒng)管理員]不使用sudo”——Paul Venezia?

Venezia在其文章中稱,對于許多充當(dāng)系統(tǒng)管理員的人來說,sudo被用作不必要的道具。他沒有用太多的篇幅來捍衛(wèi)或解釋這一立場,只是聲稱這是事實(shí)。我同意他的看法,對于系統(tǒng)管理員來說是這樣。我們不需要輔助輪來完成我們的工作。實(shí)際上,輔助輪很礙事。

然而,時代在“變化” ——美國民謠之父Bob Dylan是對的。自單人單機(jī)時代問世以來,管理計算機(jī)的方式發(fā)生了顯著變化。在許多環(huán)境中,計算機(jī)的用戶也是管理員。因此有必要為那些用戶提供root的部分權(quán)限。一些現(xiàn)代發(fā)行版(比如Ubuntu及衍生版)經(jīng)配置后,可將sudo命令專門用于特權(quán)任務(wù)。在那些發(fā)行版中,不可能以root用戶身份直接登錄或者甚至使用su成為root,因此需要sudo命令允許非root用戶訪問root權(quán)限。在這種環(huán)境下,所有系統(tǒng)管理任務(wù)都使用sudo來執(zhí)行。

如果鎖定root帳戶,并將常規(guī)用戶帳戶添加到wheel組,可以進(jìn)行這種配置。這種配置很容易被規(guī)避。

不妨在任何Ubuntu主機(jī)或虛擬機(jī)上先進(jìn)行試驗(yàn)。我安裝了Ubuntu 16.04 LTS1,并使用VirtualBox將它安裝在虛擬機(jī)中。我在安裝過程中為這個試驗(yàn)創(chuàng)建了一個非root用戶student,并使用了一個簡單的密碼。

以用戶student身份登錄,打開終端會話。查看/etc/shadow文件中root對應(yīng)的條目,加密的密碼存儲在該文件中。

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

權(quán)限被拒絕,因此我們無法查看/etc/shadow文件。這對所有發(fā)行版都很常見,旨在防止非特權(quán)用戶查看和訪問加密的密碼,不然可以使用常見的黑客工具破解這些密碼?,F(xiàn)在不妨嘗試使用su –成為root。

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

左右滑動查看完整代碼這會失敗,因?yàn)閞oot帳戶沒有密碼,被鎖在外面。使用sudo命令查看/etc/shadow文件。

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

左右滑動查看完整代碼我截斷了輸出結(jié)果,只顯示root和student用戶對應(yīng)的條目。我還縮短了加密的密碼,因此條目將放在一行中。字段由冒號(:)隔開,第二個字段是密碼。請注意,root的密碼字段是bang,即是個感嘆號(!)。這表明該帳戶已被鎖住,無法使用。

現(xiàn)在,要使用root帳戶成為真正的系統(tǒng)管理員,就需要為root帳戶設(shè)置密碼。

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:~#

左右滑動查看完整代碼現(xiàn)在您可以直接在控制臺上以root身份登錄,或者直接使用su成為root,而不是對每個命令使用sudo。當(dāng)然,每當(dāng)您想以root身份登錄,完全可以就使用sudo su -,但何必勞這個神?

請別誤解我的意思。Ubuntu及上下游衍生版之類的發(fā)行版非常好,這些年來我就用過其中幾個。在使用Ubuntu及相關(guān)發(fā)行版時,我最先做的事情之一是設(shè)置root密碼,以便我可以直接以root身份登錄。

其他發(fā)行版(如Fedora及衍生版)如今在安裝過程中提供幾個有意思的選擇。我注意到這點(diǎn)的第一個Fedora版本是Fedora 34??梢栽陧撁嫔险业竭@些安裝選項(xiàng)之一,以設(shè)置root密碼。新選項(xiàng)允許用戶以鎖定Ubuntu root帳戶的方式選擇“鎖定root帳戶”。該頁面上還有一個選項(xiàng),允許使用密碼,以root身份遠(yuǎn)程SSH登錄到該主機(jī),但僅當(dāng)root帳戶被解鎖時才適用。

頁面上的第二個選項(xiàng)允許創(chuàng)建非root用戶帳戶。該頁面上的選項(xiàng)之一是“將該用戶設(shè)為管理員”。選中該選項(xiàng)后,用戶ID被添加到名為wheel組的特殊組中,授權(quán)該組成員可以使用sudo命令。Fedora 36甚至在該復(fù)選框的描述中提到了wheel組。

可以將多個非root用戶設(shè)為管理員。使用該方法指定為管理員的任何人都可以使用sudo命令,在Linux計算機(jī)上執(zhí)行所有管理任務(wù)。

Linux只允許在安裝過程中創(chuàng)建一個非root用戶,因此其他新用戶可以在創(chuàng)建時添加到wheel組中。root用戶或另一個管理員可以使用文本編輯器或usermod命令,將現(xiàn)有用戶直接添加到wheel組。在大多數(shù)情況下,今天的管理員只需要執(zhí)行幾項(xiàng)基本任務(wù),比如添加新打印機(jī)、安裝更新或新軟件,或者刪除不再需要的軟件。這些GUI工具需要root或管理員密碼,接受指定為管理員的用戶輸入的密碼。

我如何在Linux上使用su和sudo? 

我既使用su又使用sudo。它們在我的系統(tǒng)管理員工具箱中都有重要的位置。

我無法鎖定root帳戶,因?yàn)槲倚枰褂盟鼇磉\(yùn)行我的Ansible劇本和為執(zhí)行備份而編寫的rsbu Bash程序。這兩個命令都需要以root身份運(yùn)行,我編寫的另外幾個管理Bash腳本也是如此。我使用su命令將用戶切換成root用戶,那樣我就可以執(zhí)行這些任務(wù)和其他許多常見任務(wù)。在確定和解決問題時,使用su將我的權(quán)限提升到root尤其有用。

當(dāng)非root用戶需要執(zhí)行需要root權(quán)限的任務(wù)時,我將sudo命令用于這些任務(wù)。我在sudoers文件中設(shè)置了非root帳戶,以便只訪問完成任務(wù)所需的一兩個命令。當(dāng)我只需要運(yùn)行一兩個擁有升級權(quán)限的快速命令時,我自己也會使用sudo。

結(jié)論 

使用哪種工具其實(shí)不如完成工作那么重要。使用vim或Emacs、systemd或SystemV、RPM或DEB、sudo或su,并沒有那么大的區(qū)別。

歸根到底,應(yīng)該使用最順手、最適合自己的工具。Linux和開源的最大優(yōu)點(diǎn)之一便是,我們通常都有許多可供選擇工具幫助我們完成任務(wù)。su和sudo各有優(yōu)點(diǎn),適當(dāng)用于預(yù)期的用例時,兩者都表現(xiàn)不俗。我偏愛用su處理自己的大部分工作,因?yàn)樗钸m合我和我的工作流程。

參考鏈接:

ps://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin

責(zé)任編輯:閆懷德 來源: 51CTO
相關(guān)推薦

2018-09-04 10:04:13

Linux命令sudo

2021-11-01 10:05:32

Linuxsusudo

2022-12-14 17:26:43

2023-08-14 10:02:46

命令Linux

2021-06-25 10:04:47

DevOpsDevSecOps開發(fā)

2024-01-09 16:14:39

RustGo切片

2020-09-14 09:01:43

VMware vSANSAN網(wǎng)絡(luò)虛擬化

2019-12-10 11:49:30

網(wǎng)絡(luò)協(xié)議LACPPAGP

2023-06-03 00:04:10

容器虛擬機(jī)VM

2013-10-11 09:22:49

EBGPIBGPIGP

2021-10-21 22:00:55

比特幣加密貨幣貨幣

2020-03-17 11:05:35

智能家居智能建筑物聯(lián)網(wǎng)

2020-05-24 16:32:27

消費(fèi)物聯(lián)網(wǎng)工業(yè)物聯(lián)網(wǎng)物聯(lián)網(wǎng)

2023-12-24 22:38:44

Linux命令

2023-01-04 11:41:31

微服務(wù)SOA架構(gòu)

2013-04-17 14:37:39

Linux系統(tǒng)管理員susudo

2020-05-09 08:31:41

M2MIoT物聯(lián)網(wǎng)

2024-02-21 23:13:45

C++編程開發(fā)

2011-07-20 09:36:58

XenClient 2XenClient X

2020-05-21 10:34:49

微隔離網(wǎng)絡(luò)攻擊安全架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號