sudo fragt mich immer wieder nach meinem Passwort in fish shell

19

sudo in Ubuntu fragt mich bei jedem Befehl nach meinem Passwort. Früher musste ich das Passwort nur einmal eingeben, und dann wurde es für einen bestimmten Zeitraum gespeichert. Dies hat sich kürzlich geändert, wahrscheinlich nach dem "Upgrade" auf Natty.

Ich habe sudo visudoeinen Defaults env_reset, timestamp_timeout = 60Neustart versucht, aber es funktioniert immer noch nicht. Wie behebe ich das?

Nach Vorschlägen unten /etc/sudoerssieht mein so aus:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults:endolith timestamp_timeout=60

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d

Aktualisieren:

Ich habe meine VirtualBox aufgerüstet und sie litt unter dem gleichen Problem. Vermutlich habe ich bash ausgeführt und versucht, dies zu tun, und das Kennwort wird korrekt gespeichert. Es ist nur , wenn ich meine Standard - Shell verwenden , Fisch , dass er sich nicht erinnern , nicht. Es hat in der vorherigen Ubuntu-Version, aber nicht mehr.

Aktualisieren:

Ich habe ein Upgrade auf 13.05 durchgeführt und dies hat auf magische Weise wieder funktioniert. Jetzt fragt es einmal nach meinem Passwort, hört für eine Weile auf, danach zu fragen, und fragt nach einiger Zeit erneut.

Endolith
quelle
Mögliches Duplikat: superuser.com/questions/148665/…
warren
3
@ Warren: Das ist kein Duplikat. Ich sollte aufgefordert werden, das Passwort einzugeben, aber nachdem ich es einmal eingegeben habe, muss ich es für eine bestimmte Zeit nicht mehr eingeben. Ich habe diese Zeit mit visudo in der Vergangenheit geändert, aber es funktioniert nicht mehr.
Endolith
Ich denke, dass Sie mehrere Defaults-Anweisungen verwenden müssen, anstatt eine gemeinsame getrennte.
Stephanie
@ Stephanie, ich bin sicher, dass eine einzelne Defaults-Anweisung mit durch Kommas getrennten Werten gut funktioniert.
Zoredache
Ich sehe, Sie haben eine Zeile wie hinzugefügt Defaults:endolith timestamp_timeout=60, aber Sie sind nicht in einer Gruppe namens Endolith, entsprechend einem anderen Kommentar hier. Also, welchen Benutzernamen verwenden Sie? whoamiendolithDefaults:endolith timestamp_timeout=60endolith ALL=(ALL) NOPASSWD: ALL
Erkundigen

Antworten:

15

@ Endolith: Ja, es scheint nur Fische zu betreffen. Ich hatte das gleiche Problem, das Problem wird durch die Sudo-Option "tty_tickets" verursacht. Wenn Sie dies in Ihrer / etc / sudoers-Datei deaktivieren, wird das Problem behoben.

Folgendes deaktiviert tty_tickets:

Defaults        env_reset,!tty_tickets
Kadu
quelle
Hat dies negative Auswirkungen?
Endolith
1
"Seien Sie vorsichtig, wenn Sie Remotebenutzern SSH-Zugriff anbieten, da Sie ihnen unbeabsichtigt erlauben könnten, erhöhte Berechtigungen mit Ihnen zu teilen, wenn Sie tty_tickets deaktivieren." von ask.debian.net/questions/…
endolith
Ich biete einem Remotebenutzer SSH-Zugriff an, der jedoch nur für mich selbst bestimmt ist. Ich gehe also davon aus, dass dies keine Sicherheitsanfälligkeit verursacht.
Endolith
5

Wenn nichts anderes funktioniert, versuchen Sie es sudo -i(von selbst). Dadurch erhalten Sie nach einem Kennwort eine Root-Shell.

Broam
quelle
6
Toller Punkt, aber etwas riskanter als die Anfrage.
mbb
Angesichts der Tatsache, dass dies der "Ubuntu-Weg" ist, um eine Rootshell zu erhalten, dachte ich, es sei eine nette Arbeit, um das Problem zu umgehen. Jeder Befehl wird noch protokolliert.
Broam
1
Es behebt das Problem jedoch nicht wirklich, es ist im Grunde nur eine Möglichkeit, es zu ignorieren.
Zoredache
Dies ist eher ein Workaround als eine Lösung, aber es ist gut und es macht mir nichts aus, wenn es Ihnen automatisch die Hälfte des Kopfgeldes gibt. :)
Endolith
1

Ich musste das Passwort nur einmal eingeben, und es wurde dann für einen bestimmten Zeitraum gespeichert.

Wenn ich raten sollte, würde ich wetten, dass etwas an Ihrem /var/run/sudoVerzeichnis durcheinander ist. In diesem Verzeichnis werden die Zeitstempeldateien gespeichert. Vielleicht ist / var / run voll, vielleicht sind die Berechtigungen durcheinander geraten. Wie auch immer, schauen Sie sich dieses Verzeichnis an, ich vermute, Ihr Problem könnte da sein.

Die Berechtigungen für meinen Ordner sehen folgendermaßen aus.

# find /var/run/sudo/ -ls
1164242    4 drwx------   6 root     root         4096 Jan  1  1985 /var/run/sudo/
1179694    4 drwx------   2 root     www-data     4096 Jan  1  1985 /var/run/sudo/www-data
1164286    4 drwx------   2 root     myuser      4096 Jul 21 23:03 /var/run/sudo/myuser
1163399    0 -rw-------   1 root     myuser         0 Jul 13 22:42 /var/run/sudo/myuser/0
1163453    0 -rw-------   1 root     myuser         0 Jul 21 22:59 /var/run/sudo/myuser/2
1164309    0 -rw-------   1 root     myuser         0 Jul 21 23:03 /var/run/sudo/myuser/6
1163303    0 -rw-------   1 root     myuser         0 Jul 13 22:31 /var/run/sudo/myuser/5

Aus gutem Grund sollten Sie auch versuchen sudo -K, Ihre aktuellen Zeitstempeldateien zu löschen.

Zoredache
quelle
find: '/var/run/sudo': No such file or directory
Endolith
Nun, das ist ein schlechtes Zeichen, warum nicht versuchen, es zu erstellen und den Besitz / die Berechtigungen wie oben festlegen.
Zoredache
Oder Sie können das Paket einfach neu installieren.
Zoredache
sudo mit synaptic neu installiert und es heißt immer noch, dass
Endolith
Ich bekomme das gleiche auf einer VirtualBox mit Ubuntu 10.10. Es ist kein sudoOrdner in /var/run. In dieser virtuellen Maschine wird mein Kennwort wie erwartet gespeichert, sodass dies nicht relevant zu sein scheint. Das einzige, was in visudo auf dieser virtuellen Maschine ist Defaults env_reset. Es heißt auch %sudo ALL=(ALL) ALLstatt %sudo ALL=(ALL:ALL) ALL.
Endolith
0

Ich würde das Verzeichnis /etc/sudoers.d/ überprüfen.

Sie können auch versuchen, das sudo-Paket auf die vorherige Version herunterzustufen.

Michał Šrajer
quelle