Na rozdíl od toho, co by vás jejich nejběžnější použití vedlo k myšlence, su
a sudo
nejsou určeny pouze pro přihlášení (nebo provádění akcí) jako root.
su
umožňuje změnit vaši identitu s identitou někoho jiného. Z tohoto důvodu, když zadáte su
, systém potřebuje ověřit, že máte přihlašovací údaje pro cílového uživatele, na kterého se pokoušíte změnit.
sudo
je trochu jiný. Pomocí sudo
umožňuje spouštět určité (nebo všechny, v závislosti na konfiguraci) příkazy jako někdo jiný. Vaše vlastní identita se používá k určení typů příkazů sudo
bude pro vás běžet pod identitou někoho jiného:pokud jste důvěryhodný uživatel (v tom smyslu, že vám sysadmin důvěřuje), budete mít více volného pohybu než například stážista. To je důvod, proč sudo
potřebuje ověřit vaši vlastní identitu spíše než identitu cílového uživatele.
Jinými slovy, snaží se su
pro někoho, kdo nejste, je jako pokoušet se strhnout nákupy na odcizenou kreditní kartu při použití sudo
je jako prodávat auto svého přítele prostřednictvím zákonného zástupce.
Pokud jde o to, o co jste se pokoušeli, stačí sudo su root
, nebo ještě jednodušeji sudo su
a zadejte své běžné uživatelské heslo. To by se zhruba rovnalo nahrazení přihlašovacích údajů ke kreditní kartě vašeho přítele vašimi vlastními pomocí právního zástupce, který vám dali :). Samozřejmě předpokládá sudo
konfigurace umožňuje spouštět su
s eskalovanými oprávněními.
Také systémy, které jsou předkonfigurovány s sudo
přístup má obvykle zakázaný účet root (bez hesla uživatele root), můžete to povolit pomocí passwd
příkaz poté, co se stanete rootem pomocí sudo su
.
Je konfigurovatelný*, ale ve výchozím nastavení vás „sudo“ požádá o vaše heslo. Jen se snaží ujistit, že jste to vy, a ne někdo, kdo používá vaši klávesnici, když jste si pili kávu.
Naproti tomu "su root" vás požádá o heslo uživatele root.
*Pokud je targetpw v /etc/sudoers false (výchozí), "sudo" vás požádá o vaše heslo. Pokud je to pravda, pak se vás "sudo" zeptá na heslo uživatele root nebo, pokud jste zadali jiného uživatele pomocí volby "-u", heslo tohoto uživatele.
sudo
se používá k dočasné eskalaci uživatelských oprávnění na kořenovou úroveň, zatímco su root
se používá k vytvoření nového shellu s uživatelem root;