Ist es möglich, das Passwort für sudo nur einmal einzugeben und es so zu konfigurieren, dass auf anderen Terminals kein Passwort erforderlich ist?

33

Ich gebe meinen ersten sudoBefehl ein. Ich gebe mein Passwort ein. Für eine Weile muss ich mein Passwort für nachfolgende sudo-Befehle nicht eingeben.

Nun die Frage. Ich bin jemand, der viele Terminals öffnet. Es wäre sehr praktisch, wenn ich sudoin den Terminals, die ich nach meinem ersten Sudo öffne, keine Passwörter eingeben müsste , für die kurze Zeit, in der ich kein Passwort für sudo in dem Terminal eingeben muss, für das ich sudo verwendet habe das erste Mal. (Entschuldigung für den langen Satz!)

Ist es möglich? Wenn nein, warum? Wenn ja, wie?

daltonfury42
quelle
4
Haben Sie schon einmal darüber nachgedacht, dass Sie damit die Sicherheitslücke öffnen, die durch diesen Mechanismus geschlossen werden kann? Der Grund, warum Sie Ihr Passwort mit sudo eingeben müssen, besteht darin, sich vor dem Umstand zu schützen, dass ein Angreifer in Ihrem Namen Zugriff auf eine Anmeldesitzung erhalten hat. Wenn Sie es deaktivieren und es jemandem gelingt, eine Ihrer Terminalsitzungen zu hijacken (befinden sich alle auf derselben Konsole?) Oder auf andere Weise auf eine Anmeldesitzung in Ihrem Namen zugreifen kann, ohne Ihr Kennwort zu kennen, kann er eine dieser Sitzungen ausführen Befehl als root. Kein sehr wahrscheinliches Szenario, aber etwas, das Sie berücksichtigen sollten.
Pepijn Schmitz

Antworten:

52

Sicher ist es das. Führen Sie sudo visudodie folgende Zeile aus und fügen Sie sie Ihrer sudoersDatei hinzu:

Defaults        !tty_tickets

Wie erklärt in man sudoers:

 tty_tickets       If set, users must authenticate on a per-tty basis.
                   With this flag enabled, sudo will use a separate record
                   in the time stamp file for each tty.  If disabled, a
                   single record is used for all login sessions.  This
                   flag is on by default.

Durch Deaktivieren tty_tickets(das ist die Bedeutung !) können Sie eine einzelne Authentifizierung für mehrere Sitzungen freigeben.

terdon
quelle
1
Das Einzige, was ich hier anders mache, wenn ich Benutzern empfehle, ist, stattdessen eine sudoers.d-Datei zu verwenden. Auf diese Weise löschen Sie einfach diese Datei, wenn sie irgendwie sehr einfach wiederherzustellen sind. Ex. sudo visudo -f /etc/sudoers.d/01_file
Doug
Was passiert, wenn das Sudo-Timeout endet? oder sowas laufen lassen sudo -k?
1.
@ Maythux Sie müssen es erneut eingeben. Dadurch funktioniert nur eine einzige Identifizierung für alle Shell-Sitzungen. Nichts anderes.
Terdon
@ user3073656 ah, cool, das macht mehr Sinn :). Ja, bitte, ich werde meine löschen.
Terdon
Wenn ich diese Methode verwende, läuft das Kennwort nur nach einem Zeitlimit von 15 Minuten ab, selbst wenn ich einen Neustart durchführe, der ein Sicherheitsrisiko darstellt. Vielleicht fügen Sie sudo -kzu /etc/rc6.d?
Daltonfury42