Warum fragt sudo im Fenster nach einem Passwort, nachdem ich mich gerade in einem anderen authentifiziert habe?

10

Wenn ich die Befehlszeile in xterm, gnome-terminal usw. verwende, kann ich sudoinnerhalb einiger Grenzen nicht erneut nach einem Kennwort fragen oder es deaktivieren.

Als Kompromiss zwischen Benutzerfreundlichkeit und Sicherheit möchte ich normalerweise nur, dass diese Wartezeit für die erneute Abfrage verlängert wird.

Standardmäßig gibt es nach der Eingabe eines sudo-Passworts nur eine Nachfrist von 15 Minuten, bevor es erneut dazu aufgefordert wird. Um dies auf 45 Minuten zu ändern, kann ich /etc/sudoerstimestamp_timeout bearbeiten und auf die gewünschte Wartezeit (in Minuten) einstellen.

Sudoers Datei

Wenn ich mich in derselben Terminalsitzung befinde und eine neue Shell starte (Eingabe cshoder bash), wird die Wartezeit eingehalten.

Wenn ich jedoch in ein anderes Fenster gehe, um dort auf die Befehlszeile zuzugreifen, werde ich sofort nach meinem Passwort gefragt, wenn ich es versuche sudo.

Innerhalb derselben pseudoterminalen Sitzung ( pts) (wenn ich beispielsweise eine neue Shell innerhalb desselben Gnome-Terminal-Fensters spawne) wird das Timeout eingehalten.

Wenn ich ein neues xterm, Gnome-Terminal usw. starte, muss ich die Anmeldeinformationen erneut eingeben.

Obwohl sudo der einzige Benutzer ist, der auf meinem Heimsystem (einem Einzelbenutzersystem) usw. aktiv ist, vertraut sudo nicht darauf, dass alle meine ptsEinträge vom selben Benutzer stammen:

~/pseudoland$ w
 01:27:39 up 1 day, 15:03,  7 users,  load average: 0.32, 0.71, 0.77
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
jgb    tty1                      23:56    1:30m  0.55s  0.51s -bash
jgb    tty7     :0               Tue10   39:03m  2:28m  0.76s gnome-session
root     pts/1    :0.0             00:30   56:23   0.01s  0.01s /bin/bash
jgb    pts/3    :0.0             01:16    0.00s  0.59s  3.22s gnome-terminal
jgb    pts/4    :0.0             01:27   26.00s  0.23s  0.23s /bin/bash
jgb    pts/5    :0.0             01:17    9:26   0.23s  0.23s bash

Gibt es eine Möglichkeit, sudo mitzuteilen, dass alle von mir geöffneten Fenster von demselben Benutzer stammen sollen, und nicht erneut nach meinem Passwort zu fragen, wenn der letzte sudo-Timer nicht abgelaufen ist?

belacqua
quelle

Antworten:

12

Die Nachfrist wird durch ein sogenanntes sudo"Ticket" gesteuert . Wenn Sie sich mit sudo authentifizieren, wird dieses Ticket mit einem bestimmten Zeitstempel erstellt, der im Grunde angibt, wann die Authentifizierung ablaufen soll.

Standardmäßig (dies wird festgelegt, wenn das Paket kompiliert wird) beträgt dieses Zeitlimit, wie Sie festgestellt haben, pro tty . Dies ist eine Funktion von sudo namens 'tty_tickets'. Grundsätzlich bedeutet dies, dass sudo statt einer Sperre pro Benutzer stattdessen eine Sperre pro tty erstellt.

Um zum alten Verhalten zurückzukehren und das Standardverhalten zu überschreiben, müssen Sie es bearbeiten /etc/sudoers. Suchen Sie die DefaultsZeile " ", die Sie bereits bearbeitet haben, um das Zeitlimit zu ändern, und hängen Sie ,!tty_ticketssie an. Dadurch wird die Funktion tty_tickets deaktiviert und Sie erhalten das gewünschte Verhalten.

Iain Lane
quelle