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

Linux 用戶的七個(gè) sudo 技巧和改進(jìn)

系統(tǒng) Linux
在這個(gè)教程中,我并不會(huì)解釋 sudo 是如何運(yùn)作的,這個(gè)主題我會(huì)在另一天講解。

用這些技巧釋放 sudo 的力量 ??

你應(yīng)該熟悉 sudo 吧?肯定有過(guò)使用的經(jīng)驗(yàn)。

對(duì)多數(shù) Linux 用戶來(lái)說(shuō),sudo 就像一個(gè)神器,賦予了他們作為 root 用戶執(zhí)行任意命令或切換到 root 用戶身份的能力。

其實(shí)這只掌握了一半的真相。sudo 絕非僅僅只是一條命令,sudo 是一款你可以根據(jù)需求和偏好去定制的工具。

Ubuntu、Debian 以及其他的發(fā)行版在默認(rèn)的配置下,賦予了 sudo 以 root 用戶的身份執(zhí)行任意命令的權(quán)限。這讓很多用戶誤以為 sudo 就像一個(gè)魔法開(kāi)關(guān),瞬間可以獲取到 root 權(quán)限。

比如說(shuō),系統(tǒng)管理員可以設(shè)置成只有屬于特定的 dev 組的部分用戶才能用 sudo 來(lái)執(zhí)行 nginx 命令。這些用戶將無(wú)法用 sudo 執(zhí)行任何其他命令或切換到 root 用戶。

如果你對(duì)此感到驚訝,那很可能是你一直在使用 sudo,但對(duì)其底層的工作原理并沒(méi)有太多了解。

在這個(gè)教程中,我并不會(huì)解釋 sudo 是如何運(yùn)作的,這個(gè)主題我會(huì)在另一天講解。

在這篇文章中,你將看到 sudo 的不同特性可以如何被調(diào)試和改進(jìn)。有些可能真的很有用,有些可能完全沒(méi)什么幫助,但是挺有趣。

?? 請(qǐng)不要隨意去嘗試所有提到的改進(jìn)。如果處理不慎,你可能會(huì)遭遇無(wú)法運(yùn)行 sudo 的混亂狀態(tài)。在大多數(shù)情況下,平靜閱讀并知道這些就好。如果你決定嘗試一些改進(jìn)步驟,請(qǐng)先備份你的系統(tǒng)設(shè)置,這樣在需要的時(shí)候能把事情恢復(fù)到正常。

1、編輯 sudo 配置時(shí),請(qǐng)始終使用 visudo

sudo 命令是通過(guò) /etc/sudoers 文件進(jìn)行配置的。

雖然你可以用你最喜歡的 終端文本編輯器 編輯這個(gè)文件,比如 Micro、NeoVim 等,但你千萬(wàn)不要這么做。

為什么這么說(shuō)呢?因?yàn)樵撐募械娜魏握Z(yǔ)法錯(cuò)誤都會(huì)讓你的系統(tǒng)出問(wèn)題,導(dǎo)致 sudo 無(wú)法工作。這可能會(huì)使得你的 Linux 系統(tǒng)無(wú)法正常使用。

你只需要這樣使用即可:

sudo visudo

傳統(tǒng)上,visudo 命令會(huì)在 Vi 編輯器中打開(kāi) /etc/sudoers 文件。如果你用的是 Ubuntu,那么會(huì)在 Nano 中打開(kāi)。

這么做的好處在于,visudo 會(huì)在你試圖保存更改時(shí)執(zhí)行語(yǔ)法檢查。這能確保你不會(huì)因?yàn)檎Z(yǔ)法錯(cuò)誤而誤改 sudo 配置。

visudo 在保存到 sudoers 文件的變更前檢查語(yǔ)法visudo 在保存到 sudoers 文件的變更前檢查語(yǔ)法

好了!現(xiàn)在你可以看看 sudo 配置的一些改變。

?? 我建議你備份 /etc/sudoers 文件(sudo cp /etc/sudoers /etc/sudoers.bak)。這樣,如果你不確定你做了哪些更改,或者你想恢復(fù)到默認(rèn)的 sudo 配置,那你可以從備份文件中復(fù)制。

2、輸入 sudo 密碼時(shí)顯示星號(hào)

我們的這種輸入行為是從 UNIX 系統(tǒng)中繼承下來(lái)的。當(dāng)你在終端輸入 sudo 密碼時(shí),屏幕上不會(huì)有任何顯示。這種缺乏反饋的現(xiàn)象,往往讓新的 Linux 用戶懷疑自己的系統(tǒng)已經(jīng)卡住了。

人們常說(shuō),這是一項(xiàng)安全功能?;蛟S在上個(gè)世紀(jì)是這樣,但我個(gè)人覺(jué)得我們沒(méi)有必要繼續(xù)這樣下去。

不過(guò),一些發(fā)行版,如 Linux Mint,已經(jīng)對(duì) sudo 進(jìn)行了優(yōu)化,當(dāng)你輸入密碼時(shí)會(huì)顯示星號(hào)。

這樣的方式更符合我們的日常經(jīng)驗(yàn)。

如果想讓 sudo 輸入密碼時(shí)顯示星號(hào),運(yùn)行 sudo visudo 并找到以下行:

Defaults env_reset

然后將其更改為:

Defaults env_reset,pwfeedback

?? 在某些發(fā)行版中,比如 Arch,你可能找不到 Defaults env_reset 這一行。如果這樣的話,只需新增一行 Defaults env_reset, pwfeedback 就可以了。

現(xiàn)在,當(dāng) sudo 需要你輸入密碼時(shí),你會(huì)看到輸入的密碼變成了星號(hào)。

? 如果你注意到即使密碼正確也無(wú)法通過(guò)一些圖形化應(yīng)用,如軟件中心,那就該撤銷這項(xiàng)更改。一些較舊的論壇帖子曾提到過(guò)此類問(wèn)題,雖然我自己還未遇到過(guò)。

3、增加 sudo 密碼超時(shí)時(shí)限

當(dāng)你首次使用 sudo 時(shí),它會(huì)要求輸入密碼。但在隨后相當(dāng)一段時(shí)間里,你使用 sudo 執(zhí)行命令就無(wú)需再次輸入密碼。

我們將這個(gè)時(shí)間間隔稱為 sudo 密碼超時(shí) (暫且稱為 SPT,這是我剛剛編的說(shuō)法,請(qǐng)不要真的這樣稱呼 ??)。

不同的發(fā)行版有不同的超時(shí)時(shí)間??赡苁?5 分鐘,也可能是 15 分鐘。

你可以根據(jù)自己的喜好來(lái)改變這個(gè)設(shè)置,設(shè)定一個(gè)新的 sudo 密碼超時(shí)時(shí)限。

像你之前看到的,編輯 sudoers 文件,找到含有 Defaults env_reset 的行,并在此行添加 timestamp_timeout=XX,使其變成如下形式:

Defaults        env_reset, timestamp_timeout=XX

其中 XX 是以分鐘為單位的超時(shí)時(shí)長(zhǎng)。

如果你還有其他參數(shù),例如你在上一節(jié)中看到的星號(hào)反饋,它們都可以在一行中組合起來(lái):

Defaults        env_reset, timestamp_timeout=XX, pwfeedback

?? 同樣地,你還可以控制密碼重試的次數(shù)上限。使用 passwd_tries=N 來(lái)修改用戶可以輸入錯(cuò)誤密碼的次數(shù)。

4、在不輸入密碼的情況下使用 sudo

行!你已經(jīng)增加了 sudo 密碼超時(shí)時(shí)限(或者稱之為 SPT。哇塞!你還在堅(jiān)持這個(gè)叫法 ??)。

這樣很好。我的意思是,畢竟沒(méi)人愿意每幾分鐘就輸入一次密碼。

擴(kuò)大超時(shí)時(shí)限是一方面,另一方面則是盡可能不去使用它。

是的,你沒(méi)聽(tīng)錯(cuò)。你就是可以在無(wú)需輸入密碼的情況下使用 sudo。

從安全角度來(lái)看,這聽(tīng)起來(lái)似乎很冒險(xiǎn),對(duì)吧?的確如此,但在某些實(shí)際情況下,你確實(shí)會(huì)更青睞無(wú)密碼的 sudo。

例如,如果你需要遠(yuǎn)程管理多臺(tái) Linux 服務(wù)器,并為了避免總是使用 root,你在這些服務(wù)器上創(chuàng)建了一些 sudo 用戶。辛酸的是,你會(huì)有太多的密碼。而你又不想對(duì)所有的服務(wù)器使用同一的 sudo 密碼。

在這種情況下,你可以僅設(shè)置基于密鑰的 SSH 訪問(wèn)方式,并允許使用無(wú)需密碼的 sudo。這樣,只有獲得授權(quán)的用戶才能訪問(wèn)遠(yuǎn)程服務(wù)器,也不用再記住 sudo 密碼。

我在 DigitalOcean 上部署的測(cè)試服務(wù)器上就采用了這種方法,用來(lái)測(cè)試開(kāi)源工具和服務(wù)。

好處是這可以按用戶進(jìn)行設(shè)置。使用以下命令打開(kāi) /etc/sudoers 文件進(jìn)行編輯:

sudo visudo

然后添加如下行:

user_name ALL=(ALL) NOPASSWD:ALL

當(dāng)然,你需要將上面行中的 user_name 替換為實(shí)際的用戶名。

保存文件后,你就可以享受無(wú)密碼的 sudo 生活了。

5、配置獨(dú)立的 sudo 日志文件

查閱 syslog 或 journal 日志,我們可以找到關(guān)于 sudo 的所有條目,但若需要單獨(dú)針對(duì) sudo 的記錄,可以專門(mén)創(chuàng)建一個(gè)自定義的日志文件。例如,選擇 /var/sudo.log 文件來(lái)存儲(chǔ)日志。這個(gè)新的日志文件無(wú)需手動(dòng)創(chuàng)建,如果不存在,系統(tǒng)會(huì)自動(dòng)生成。

編輯 /etc/sudoers 文件,采用 visudo 命令,并在其中添加以下內(nèi)容:

Defaults  logfile="/var/log/sudo.log"

保存該文件后,便可以在其中查看哪些命令在何時(shí)、由哪位用戶通過(guò) sudo 運(yùn)行了。

6、限制特定用戶組使用 sudo 執(zhí)行特定命令

這是一種高級(jí)解決方案,系統(tǒng)管理員在需要跨部門(mén)共享服務(wù)器的多用戶環(huán)境中會(huì)使用。

開(kāi)發(fā)者可能會(huì)需要以 root 權(quán)限運(yùn)行 Web 服務(wù)器或其他程序,但全權(quán)給予他們 sudo 權(quán)限會(huì)帶來(lái)安全風(fēng)險(xiǎn)。我建議在群組級(jí)別進(jìn)行此項(xiàng)操作。例如,創(chuàng)建命名為 coders 的群組,并允許它們運(yùn)行在 /var/www 和 /opt/bin/coders 目錄下的命令(或可執(zhí)行文件),以及 inxi 命令(路徑是 /usr/bin/inxi 的二進(jìn)制文件)。這是一個(gè)假想情景,實(shí)際操作請(qǐng)謹(jǐn)慎對(duì)待。

接下來(lái),用 sudo visudo 編輯 sudoer 文件,再添加以下行:

%coders   ALL=(ALL:ALL) /var/www,/opt/bin/coders,/usr/bin/inxi

如有需要,可以添加 NOPASSWD 參數(shù),這樣允許使用 sudo 運(yùn)行的命令就不再需要密碼了。

關(guān)于 ALL=(ALL:ALL) 的詳細(xì)解讀,我們將會(huì)在其他文章中進(jìn)行講解,畢竟這篇文章已經(jīng)解釋的內(nèi)容足夠多了。

7、檢查用戶的 sudo 權(quán)限

好吧,這是個(gè)小提示,而不是系統(tǒng)調(diào)優(yōu)技巧。

如何確認(rèn)一個(gè)用戶是否具有 sudo 權(quán)限呢?可能有人會(huì)說(shuō),查看他們是否是 sudo 組的成員。但這并不一定準(zhǔn)確,因?yàn)橛行┌l(fā)行版用的是 wheel 代替 sudo 分組。

更佳的方法是利用 sudo 內(nèi)建的功能,看看用戶具有哪種 sudo 權(quán)限:

sudo -l -U user_name

這將顯示出用戶具有執(zhí)行部分命令或所有命令的 sudo 權(quán)限。

如你所見(jiàn),我擁有自定義日志文件、密碼反饋以及執(zhí)行所有命令的 sudo 權(quán)限。

如果一個(gè)用戶完全沒(méi)有 sudo 權(quán)限,你將看到如下提示:

User prakash is not allowed to run sudo on this-that-server.

?? 附加內(nèi)容:輸錯(cuò) sudo 密碼時(shí),讓系統(tǒng)“侮辱”你

這是個(gè)我在文章開(kāi)頭提到的“無(wú)用”小調(diào)整。

我想你在使用 sudo 時(shí)肯定曾誤輸過(guò)密碼,對(duì)吧?

這個(gè)小技巧就是,在你每次輸錯(cuò)密碼時(shí),讓 sudo 拋出隨機(jī)的“侮辱”。

用 sudo visudo 修改 sudo 配置文件,然后添加以下行:

Defaults   insults

修改后,你可以故意輸錯(cuò)密碼,測(cè)試新的設(shè)置。

你可能在想,誰(shuí)會(huì)喜歡被侮辱呢?只有粉絲可以以直白的方式告訴你 ??

你是如何運(yùn)用 sudo 的?

我知道定制化的可能性無(wú)窮無(wú)盡,但其實(shí),一般的 Linux 用戶并不會(huì)去自定義 sudo

盡管如此,我還是熱衷于與你分享這些因?yàn)槟憧赡軙?huì)發(fā)現(xiàn)一些新奇且實(shí)用的東西。

?? 那么,你有發(fā)現(xiàn)什么新的東西嗎?請(qǐng)?jiān)谠u(píng)論區(qū)告訴我。你有一些秘密的 sudo 技巧歡迎和大家分享!

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2023-06-25 11:39:00

Linux文件

2009-05-20 16:17:39

Linux硬盤(pán)技巧

2023-09-07 16:28:46

JavaScrip

2021-11-22 12:13:54

Linuxwget 命令

2021-11-17 15:28:06

LinuxLinux命令

2023-05-30 09:59:38

2018-05-24 08:47:15

數(shù)據(jù)存儲(chǔ)技巧

2021-08-17 10:08:44

HTML網(wǎng)站網(wǎng)絡(luò)

2024-06-25 15:41:41

2022-04-14 10:40:11

領(lǐng)導(dǎo)者IT團(tuán)隊(duì)遠(yuǎn)程團(tuán)隊(duì)

2023-03-22 14:07:00

機(jī)器人

2019-09-09 10:32:51

基于意圖的網(wǎng)絡(luò)IBN網(wǎng)絡(luò)

2023-07-25 16:39:51

布線數(shù)據(jù)布線

2023-07-11 18:32:19

UbuntuLinux應(yīng)用塢

2021-12-17 10:29:38

CIOITCFO

2021-06-10 08:00:00

首席信息安全官IT數(shù)據(jù)

2015-11-30 17:12:31

Git使用技巧

2023-04-19 15:29:53

通信技巧Vue 3開(kāi)發(fā)

2021-03-02 10:54:08

高管IT投資首席信息官

2022-08-26 08:00:00

數(shù)字時(shí)代IT首席信息官
點(diǎn)贊
收藏

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