問題描述
sudo
,su
,visudo
,chroot
和gksu
之間有什麽區別?
最佳解決思路
-
chroot
是一種輸入文件夾和’faking’的方式,該文件夾是/
到內部執行的任何內容。這使您可以在non-booting Ubuntu安裝上運行可執行文件,方法是將其安裝在/
以外的某個位置,並使用/bin/bash
(安裝中的一個)來獲取終端提示。 -
sudo – 允許某些帳戶進行身份驗證,以root或其他用戶身份運行程序。某些程序可能不需要sudoers文件中定義的密碼。是否允許請求取決於運行sudo的用戶(和組)以及要運行的命令(如sudoers中所定義)。
-
su
– 也是一種提升方式,但由於它以root(或其他用戶)執行完整的交互式登錄,因此存在差異,並提供bash提示符,除非使用參數另行指定。它使用目標用戶的憑據作為身份驗證。 -
visudo
– 編輯sudoers
文件。這使用一個特殊的可執行文件來檢查文件的語法,以確保您不會因sudoers
文件損壞而被鎖定在sudo
之外。如果您嘗試保存無效配置,它將阻止您,並返回編輯器進行修複。 -
gksudo
或gksu
與sudo相同,除了它是圖形並重寫某些路徑,以便圖形程序不會導致用戶配置文件的權限問題,尤其是~/.Xauthority
。
次佳解決思路
須藤:
Sudo(超級用戶do)允許係統管理員為某些用戶(或用戶組)提供以root身份運行某些(或所有)命令的能力,同時記錄所有命令和參數。 Sudo以per-command為基礎運行。
它不是shell的替代品。
功能包括:限製用戶可以在每個主機上運行的命令,每個命令的大量日誌記錄(提供誰做了什麽的清晰審計跟蹤),sudo命令的可配置超時以及使用能力許多不同機器上的相同配置文件(sudoers)。
visudo命令
visudo是一個命令行實用程序,允許以安全的方式編輯/etc/sudoers
文件。它默認使用vi編輯器的界麵打開/etc/sudoers
(盡管可以通過將shell的EDITOR環境變量設置為不同的文本編輯器來更改),防止多個同時使用鎖編輯,執行完整性檢查並檢查解析錯誤。
SU
su命令(也稱為替代用戶,超級用戶或交換機用戶)允許計算機操作員更改與正在運行的虛擬控製台關聯的當前用戶帳戶。
默認情況下,沒有任何其他命令行參數,這會將當前用戶提升為本地係統的超級用戶。
從命令行運行時,su要求輸入目標用戶的密碼,如果經過身份驗證,則授予操作員對該帳戶的訪問權限以及允許帳戶訪問的文件和目錄。
另外,可以切換到不是超級用戶的另一個用戶
根
root是默認情況下可以訪問Linux或其他Unix-like操作係統上所有命令和文件的用戶名或帳戶。它也稱為root帳戶,root用戶和超級用戶。
當用作其他術語的一部分時,單詞root也有幾個額外的相關含義。
其中一個是根目錄,它是係統上的頂級目錄。也就是說,它是所有其他目錄(包括其子目錄和文件)所在的目錄。根目錄由正斜杠(/
)指定。
另一個是/root
(發音為slash root),它是root用戶的主目錄。
它也可以指用戶root,它是具有完全權限的係統的管理員。
chroot環境
chroot是一種操作,它更改當前正在運行的進程及其子進程的明顯根目錄。例如,如果您chroot /mnt/chroot-test
,那麽目錄/mnt/chroot-test
將是您可以通過/
引用的虛擬根目錄。
使用chroots
以下是chroots的一些可能用途:
-
隔離不安全和不穩定的應用程序
-
在64位係統上運行32位應用程序
-
在生產係統上安裝新包之前測試它們
-
在更現代的Ubuntu版本上運行舊版本的應用程序
-
構建新的包,允許仔細控製已安裝的依賴包
source and more information about chroot
第三種解決思路
SU以root身份連接你。
終端將保留為會話的root用戶。
使用sudo(超級用戶),您可以作為普通用戶連接時以root用戶身份執行操作。