Wie kann man im Terminal sehen, dass Sie über Sudo-Berechtigungen verfügen? (Da ich weiß, dass ich über diese Berechtigungen verfüge, kann ich einfach tippen. sudo -k
) Es ist besser, nicht zu viele Informationen in das Terminal einzufügen, sondern nur eine einfache und kleine Warnung!
Verbleibende Zeit ist unmöglich, oder?
Wie kann ich sehen, wie viel Zeit ich noch mit diesen Berechtigungen auf diesem bestimmten Terminal habe? (so kann ich es einfach enden lassen, anstatt zu tippen sudo -k
). Ich denke, dass die verbleibende Zeit jedes Mal angezeigt werden kann, wenn ich die Eingabetaste drücke.
BEARBEITEN: Ich habe mehr recherchiert und festgestellt, dass /var/lib/sudo/$USER/$nPts
(wobei $ nPts ab dem aktuellen Terminal pts ist ps -p $$
) der Zeitstempel jedes Mal aktualisiert wird, wenn ein sudo-Befehl ausgegeben wird. Er ist nur verfügbar, wenn Sie einen sudo-Befehl verwenden. Die verbleibende Zeit ist also immer die konfiguriert ein ...
PS.: Alternativ dazu habe ich es versucht, alias sudo='sudo -k'
aber ich mag es nicht, das Passwort für jeden Befehl eingeben zu müssen ... Und auch das alias sudos='sudo -k'
(oder alias ssudo='sudo -k'
, gut, wenn Sie eine lange Zeile eingegeben haben, drücken Sie einfach Home und geben Sie 's' ein), wenn Sie Ich möchte nur einen Befehl durch Eingabe ausgeben sudos
. Aber ich vermisse es immer noch zu wissen, wann ich normale Sudo-Privilegien habe, um zu wissen, dass ich handeln muss ...
Antworten:
[Ich würde immer noch gerne wissen, ob es eine bessere Antwort gibt.]
Ich habe einen Weg gefunden, der funktioniert, und die Eingabeaufforderung wird in einer einzigen Zeile gehalten:
Fügen Sie am Ende Folgendes
~/.bashrc
hinzu:BEARBEITEN: Ich habe festgestellt, dass
sudo -n uptime
das Sudo-Zeitlimit aktualisiert wird. Jedes Mal, wenn Sie die Eingabetaste drücken, wird die Sudo-Zeit aktualisiert. Dadurch ist es nutzlos, die verbleibende Zeit zu kennen, da sie immer die konfigurierte Zeit ist und standardmäßig 15 Minuten beträgt. .und um die beste Farbformatierung für Ihren Geschmack zu finden, können Sie ScriptEchoColor mit folgenden
--escapedchars
Optionen verwenden:um das blinken einfach zu stoppen entfernen
\E[5m
wie in\E[0m\E[93m\E[41m\E[1m SUDO \E[0m
quelle
Ihr Terminal hat keine "Sudo-Privilegien", es sei denn, Sie tun etwas Dummes wie
sudo bash
TUN SIE DAS NICHT!Alles, was Sie tun müssen, um "normale Sudo-Berechtigungen zu haben", ist, nicht
sudo
vor dem Befehl zu tippen./usr/bin/id
ist ein guter Weg, um zu sehen, wassudo
tut. Beispielsweise:Auf der
sudo
Manpage heißt es: "Die sudoers-Richtlinie speichert Anmeldeinformationen für 15 Minuten zwischen, sofern sie nicht in sudoers (5) überschrieben werden." Dies bedeutet, dass Siesudo
Ihr Kennwort standardmäßig nicht erneut eingeben müssen , wenn Sie einen Befehl eingeben (und Ihr Kennwort eingeben) und dann 14,9 Minuten warten, bevor Sie einen zweitensudo
Befehl eingeben. Wenn Sie 15,1 Minuten warten, müssen Sie das Passwort erneut eingeben.sudo -k
Der 15-Minuten-Timer läuft einfach sofort ab. Die einzige Verwendung, die ich sehen kann,sudo -k
ist, wenn Sie Ihr entsperrtes Terminal jemandem übergeben möchten, dem Sie nicht vertrauenUID 0
.quelle
sudo
vor dem Befehl ein". Aber wenn ich meine Firewall-Regeln damit überprüfen möchte,iptables -L
funktioniert es nur, wenn ich tippesudo iptables -L
. Mein Punkt ist, wie können wir eigentlich vermeiden, Sudo zu verwenden?sudo -k
, bin ich über Cracker besorgt versuchen , aus der Ferne meine Maschine zugreifen (ich weiß nicht wirklich , wenn sie es doch tun können ...), oder falls ich meine Maschine ohne es offen lassen Sie sich für ein paar Momente zu Sperren ... na ja, Der eigentliche Punkt ist: Ich möchte es so machen! Es ist mir egal, dass ichsudo -k
mein Passwort später noch einmal eingeben muss, so oft ich muss. Ich fühle mich gut, wenn ich es so mache! :)/bin/su
. Sind Sie sicher, dass Sie es verwerfen möchten? "Fernzugriff auf meine Maschine ..." und, nehme ich an, übernehmen/proc/YourPID/fd/{0,1,2}
. Nein. Wenn auf Ihren Computer per Fernzugriff zugegriffen wird, hat der Bad Guy einfachere Möglichkeiten zur UID 0. Sie sollten Ihr Linux-foo erhöhen, bevor Sie Bedenken haben.alias k=/usr/bin/sudo -k
, die ersetzensudo
Befehl mit einem Alias oder bash - Funktion , die den Anruf hüllt zu/usr/bin/sudo
mit/usr/bin/touch $HOME/tmp/$$/sudotime
, und schließlich, fügen Sie etwas $ drucken {{Zeit (jetzt) - Zeit ($ HOME / tmp / $ $ / sudotime))) in Ihrer Bash-Eingabeaufforderung. Nicht trivial, aber wenn Sie sich dadurch gut fühlen, machen Sie es.sudo
mit einem Aliasnamen einem Zufallswort, könnten sie geben nach wie vor/usr/bin/sudo
statt ,sudo
und es wäre immer noch Arbeit als sudo :( der Fall ist. Wie auch immer , wie ich die Idee .. Ich frage mich , ob ich die wirkliche Veränderung/usr/bin/sudo
wird es etwas anderes brechen als Alle meine Skripte, die es verwenden. Selbst wenn ich es tue, könnten sie durch Lesen der Skripte erraten, was Sudo geworden ist.