Warum wird sudo bash benötigt?

Warum wird sudo bash benötigt?

Ich habe den folgenden Code gelesen:

$ sudo bash
# cd /home/
# ./gitpull.sh

Warum brauche ich die erste Zeile, was macht sie genau? Was wäre, wenn ich einfach $ sudostatt $ sudo bash?

Antwort1

Es startet eine Bash-Shell als rootBenutzer der Ebene. Sie benötigen es, da normale Benutzer normalerweise nicht auf/home/

Die Gefahr bei Ihrem Vorgehen besteht darin, dass Sie sich in einer Root-Shell befinden. Sie können Ihren Computer ziemlich leicht durcheinanderbringen.

Antwort2

Sie wären viel besser dran, wenn Sie Folgendes tun würden:

$ sudo sh -c 'cd /home; ./gitpull.sh'

Weil die als Root aufgerufenen Befehle protokolliert werden. Der direkte Aufruf einer Shell über sudo vermeidet alle Sicherheitsvorteile von sudo und sollte vermieden werden.

Antwort3

sudo <shell>, wenn es funktioniert, deutet dies auf eine fehlerhafte Installation von sudo und eine potenzielle Sicherheitslücke hin.

sudosollte nicht so konfiguriert werden, dass beliebige Befehle wie Shell zulässig sind. Der Zweck besteht darin, sudoauthentifizierten Nicht-Root-Benutzern zu ermöglichen, bestimmte Befehle als Root auszuführen, ohne das Root-Passwort zu kennen.

Dies sudo bashist jedem Benutzer gestattet, der allein aufgrund der Kenntnis seines Passworts zum Root-Benutzer wird.

Wenn ein Angreifer das Passwort eines der Konten erhält, die dazu in der Lage sind sudo bash, verfügt er damit über Root-Zugriff.

Die korrekte Vorgehensweise zum Erhalten sudo basheiner Root-Shell ist su, gefolgt von der Eingabe des Root-Passworts (nicht Ihres eigenen).

Antwort4

sudoermöglicht Benutzern, Programme mit den Sicherheitsberechtigungen eines anderen Benutzers (normalerweise des Superusers oder Root) auszuführen.
bashstartet eine neue Bash-Shell. Startet
also sudo basheine neue Bash-Shell mit der Sicherheitsberechtigung des Root-Benutzers.

verwandte Informationen