Herunterfahren vom Terminal ohne Passworteingabe?

51

Ich habe eine Desktop-Version von Ubuntu.

Ich mag das Terminal so, dass ich meinen Computer lieber mit dem shutdownBefehl herunterfahren möchte .

Wenn ich shutdown nowes eingebe, werde ich jedoch aufgefordert, mein Passwort einzugeben. Kann ich meinen Computer mit diesem Befehl auf irgendeine Weise herunterfahren, ohne mein Passwort einzugeben?

Santosh Kumar
quelle
4
Weiß jemand, welcher Befehl ausgeführt wird, wenn ich in der Desktop-Umgebung auf "Herunterfahren" klicke?
kubahaha

Antworten:

53

Öffnen Sie ein Terminal (STRG + T) und geben Sie Folgendes ein sudo visudo

Fügen Sie die folgende Zeile hinzu:

%group_name ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/shutdown

oder

user_name ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/shutdown

Auf diese Weise kann der Benutzer / die Gruppe die obigen drei Befehle mit sudo ausführen , jedoch ohne Kennwort.

So sudo poweroffführt nun in einer passwordless Abschaltung.


Um dies jedoch noch übersichtlicher zu gestalten, fügen wir einen Alias ​​hinzu, damit shutdownAufrufe ausgeführt werden sudo shutdown now.

~/.bash_aliasesZum Bearbeiten öffnen .

nano ~/.bash_aliases

Fügen Sie am Ende der Datei die folgende Zeile ein:

alias shutdown='sudo shutdown now' 

Zuletzt laden Sie die Änderungen in die .bash_aliasesDatei ...

source ~/.bash_aliases

Versuch es!

shutdown

Danke, Eric .

SirCharlo
quelle
36

Ein sicherer Weg, dies zu tun, ohne sudo zu verwenden und ohne mit dem System zu basteln, besteht darin, die folgenden einzeiligen Befehle auszuführen:

Für Ubuntu 14.10 oder früher:

Ausschalten:

/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

Neustart:

/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart

consolekitConsolekit installieren sollte natürlich auf Ihrem System installiert sein.

Andere Befehle, die Ihnen gefallen könnten:

Aussetzen:

/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Ruhezustand: (falls auf Ihrem System aktiviert)

/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate


Für Ubuntu 15.04 und höher:

(Dies ist auf Ubuntu Verschiebung verwendet systemdstatt Upstart)

systemctl poweroff

systemctl reboot

systemctl suspend

systemctl hibernate

systemctl hybrid-sleep

Da der Ruhezustand in Ubuntu-Systemen normalerweise deaktiviert ist, können Sie dies aktivieren, indem Sie die folgende Antwort überprüfen: https://askubuntu.com/a/617254/101985

Ursprüngliche Quelle: https://bbs.archlinux.org/viewtopic.php?id=127962

Majal
quelle
3

Unity verwendet viele Gnome-Dienste, und in diesem Fall können Sie auch Gnome Way herunterfahren.

gnome-session-quit --power-off --force --no-prompt

werde den Job machen.

Ohad Cohen
quelle
Sieht so aus, als ob dies nur für das Abmelden funktioniert. Aus der Manpage von --no-prompt:End the session without user interaction. This only works with --logout.
Pylinux
1

Während Sie können das Verfahren , bei dem Verwenden NOPASSWDauf /usr/sbin/shutdown, obwohl eine andere, DE-unabhängige Lösung ist nur Gebrauch init 0.

UniversallyUniqueID
quelle
0

das ist einfach. mit der Option -S wie folgt:

echo <your-password> | sudo -S poweroff
Qijun Liu
quelle