sudo 的替代品

sudo 的替代品

我知道我們可以使用命令作為超級/另一個用戶執行命令/腳本sudo。但是是否有可能該sudo實用程式本身不可用/被用戶刪除。如果是這樣,sudo除了 之外還有什麼替代方案su?另外,dosudosu服務於相同的目的嗎?

答案1

“sudo”允許您以任何使用者身分啟動任何程式。它是“setuid root”,因為程式本身需要 root 權限才能執行此操作。 sudo 的強大之處在於您可以輕鬆配置誰可以做什麼。您可以允許使用者使用 sudo 執行 nmap(且僅限 nmap)。

「su」允許您以任何使用者身分啟動 shell。當您啟動 shell 時,顯然可以啟動任何其他程式。因此更危險;在管理良好的系統上,su存取通常會停用,但sudo可能對不同的程式可用。

使用上述兩個程序的原因是問責制。 Sudo 記錄發出的所有請求。因此,管理員可以輕鬆追蹤使用者使用 root 權限所做的事情。如果您授予對 shell 的存取權限,使用者就可以做任何他/她喜歡的事情(這是一個「黑洞」)。 (當然,內核層級的高級日誌記錄會阻礙這一點)。

當然,這些程式也可以被標記setuid。這會在執行二進位時更改其所有者的權限。如果您設法啟動setuideg 上的位元/bin/bash並將其擁有者設為/bin/bashto root,則每次執行時您都將成為root /bin/bash

最後,實體存取機器將允許您做任何您喜歡的事情。您可以從隨身碟啟動並存取本機檔案系統。您甚至可以將引導程式設定為使用不同的init進程,該進程立即以單一使用者模式啟動 shell(無需輸入密碼)。

答案2

似乎沒有人回答除了 su 之外是否存在 sudo 替代品的問題,因此您可能有興趣知道 sudo 網站實際上維護了 sudo 替代品清單:

http://www.sudo.ws/other.html

此清單包括開源軟體和商業軟體。以下是目前列出的開源 sudo 替代方案:

也就是說,我從未使用過任何這些替代方案,也沒有在任何其他情況下見過或聽說過它們。看起來至少其中一些是實驗性的、失效的或不受支援的。我得到的印像是,sudosu是城裡唯一真正的遊戲。

答案3

以 root 身分登入(如果您的 tty 允許)或重新啟動電腦並在命令列上使用 init=/bin/bash 登入以恢復所需的功能。

我指出只有 root 才能刪除 sudo。

sudo 和 su 有相似但不同的用途。 「sudo」允許您使用其他人的權限執行某些操作,而「su」則允許您「成為」該使用者並讓您像他們一樣行事。

答案4

如果機器已openssh-server安裝,則替代方案sudo可能是:

ssh root@localhost ..command.. ..goes.. ..here..

如果它還沒有被禁用,那麼su就像你提到的:

su - root -c "..command.. ..goes.. ..here.."

相關內容