Rád bych věděl, jaký je rozdíl mezi
su -
sudo bash
sudo sh
Nemohu se přihlásit jako root při provádění su -
protože nemám heslo root – mám na mysli své uživatelské heslo, se kterým mohu sudo "command"
ale toto heslo nefunguje pro su -
Mohu se přihlásit jako root pomocí sudo bash
s mým uživatelským heslem a mohu se přihlásit při provádění sudo sh
ale pak dostanu příkazový řádek v tomto tvaru#
Nejlepší odpověď
Pozadí
V Linuxu (a Unixu obecně) existuje SuperUser s názvem Root . Superuživatel může dělat cokoli a všechno, a proto může být každodenní práce superuživatele nebezpečná. Mohli byste zadat příkaz nesprávně a zničit systém. V ideálním případě spouštíte jako uživatel, který má pouze oprávnění potřebná pro daný úkol. V některých případech je to nutně root, ale většinou jde o běžného uživatele.
su –
Tento příkaz se používá k přihlášení k účtu root.
Ve výchozím nastavení je heslo účtu root v Ubuntu uzamčeno. To znamená, že se nemůžete přihlásit jako root přímo nebo použít příkaz su, abyste se stali uživatelem root. Protože však účet Root fyzicky existuje, je stále možné spouštět programy s oprávněními na úrovni root. Zde přichází na řadu sudo – umožňuje oprávněným uživatelům (normálně „administrativním“ uživatelům) spouštět určité programy jako root, aniž by museli znát heslo root.
Viz Jak povolit účet root .
sudo sh
Tento příkaz spouští „sh“ jako super uživatel.
Obslužný program sh je interpret příkazového jazyka, který spouští příkazy načtené z řetězce příkazového řádku, standardního vstupu nebo zadaného souboru.
sudo bash
Tento příkaz spouští „bash“ jako super uživatel.
Bash je shell neboli interpret jazyka příkazů. Bash je shell kompatibilní s sh, který obsahuje užitečné funkce z Korn shellu (ksh) a C shellu (csh). Je navržen tak, aby vyhovoval standardu IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools. Nabízí funkční vylepšení oproti sh pro programování i interaktivní použití. Navíc většinu sh skriptů může Bash spouštět bez úprav.
Reference:1, 2, 3.