Was bedeutet sudo sudo?

8

Ich verwende Cloud9 für die Rails-Entwicklung und es verwendet eine Ubuntu-Umgebung. In der Dokumentation zur Verwendung der PostgreSQL-Datenbank heißt es:

Stellen Sie eine Verbindung zum Dienst her:

$ sudo sudo -u postgres psql 

Was bedeutet es, sudo zweimal zu tippen?

https://docs.c9.io/setting_up_postgresql.html

Andy Singh
quelle
1
Möglicherweise darf der Benutzer den sudoBefehl als root ausführen , nicht jedoch den psqlBefehl als postgres.
Stéphane Chazelas
@WarrenYoung Wenn man sich das Dokument ansieht, scheint es beabsichtigt, dass der Benutzer kampflos rooten kann. Der ursprüngliche Benutzer wird wahrscheinlich als Verwaltungskonto betrachtet und wurde daher wahrscheinlich angegebenuser ALL=(ALL) NOPASSWD: ALL
Bratchley
Natürlich ist es wahrscheinlich ein Problem, bei einem Konto mit SSH-Rechten nicht nach dem Root-Passwort zu fragen.
Bratchley
Ich habe ein Problem geöffnet (und einen Hash der Pull-Anfrage erstellt). Mal sehen, ob sie es beheben.
Muru
Und es wurde behoben.
Muru

Antworten:

9

Mit sudo -u postgres können Sie sich beim Ausführen des Befehls als postgres-Benutzer ausgeben. Ihr Benutzer hat dieses Privileg wahrscheinlich nicht, aber das von root.

Das erste sudo gibt Ihnen also die Berechtigungen von root und das zweite sudo ermöglicht es Ihnen (als root), sudo -u zu postgres zu machen, sodass der Befehl als postgres-Benutzer ausgeführt werden kann.

Jeremy Driscoll
quelle
+1: Dies könnte die zweite gut erklären sudo.
Warren Young
0

Sie haben Ihrem Konto wahrscheinlich nur Sudo-Rechte für das Root-Konto erteilt, und sie glauben, dass sie sudodiese dem Postgres-Benutzer übergeben müssen, um dorthin zu gelangen.

In Anbetracht der Anzahl der Personen, die ihre Regeln korrigieren, können Sie sudo -lals regulärer Benutzer ausgeführt werden, um festzustellen, ob sie Ihnen den Zugriff auf alle Benutzer ermöglicht oder Sie aus irgendeinem Grund für root gesperrt haben. Ich bin bereit zu sein, dass es das erstere ist. In diesem Fall können Sie das erste weglassen sudo.

Bratchley
quelle