it-swarm-eu.dev

Wie kann ich das Herunterfahren vornehmen, ohne dass ein Administratorkennwort erforderlich ist?

Wenn mehr als eine Person an meinem Computer angemeldet ist, benötigt Ubuntu eine Superuser-Authentifizierung, wenn der Computer heruntergefahren wird. Wie kann ich dafür sorgen, dass jeder Benutzer den Computer herunterfahren kann, ohne nach einem Kennwort gefragt zu werden?

49
Isaiah

Sie benötigen keine Problemumgehung. Ändern Sie einfach die Richtlinie, damit Sie herunterfahren können, ohne sich beim Herunterfahren als Administrator zu authentifizieren, und starten Sie den Computer neu, wenn mehrere Benutzer angemeldet sind.

Bearbeiten Sie die Datei /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy mit Ihrem bevorzugten Texteditor. Sie benötigen Root-Berechtigungen.

Ändern Sie den Abschnitt zum Herunterfahren, wenn andere Benutzer angemeldet sind

  <action id="org.freedesktop.consolekit.system.stop-multiple-users">
    <description>Stop the system when multiple users are logged in</description>
    <message>System policy prevents stopping the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
  </action>

zu

  <action id="org.freedesktop.consolekit.system.stop-multiple-users">
    <description>Stop the system when multiple users are logged in</description>
    <message>System policy prevents stopping the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

und den Abschnitt zum Neustart, wenn andere Benutzer angemeldet sind

  <action id="org.freedesktop.consolekit.system.restart-multiple-users">
    <description>Restart the system when multiple users are logged in</description>
    <message>System policy prevents restarting the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
  </action>

zu

  <action id="org.freedesktop.consolekit.system.restart-multiple-users">
    <description>Restart the system when multiple users are logged in</description>
    <message>System policy prevents restarting the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

Auf diese Weise können Sie den PC herunterfahren und neu starten, wenn mehrere Benutzer angemeldet sind. Ob Sie dies möchten, ist eine andere Frage.

27

Richard Holloways Antwort ist eigentlich nicht die Art und Weise, wie PolickKit-Berechtigungen erteilt werden sollen. Die unter /usr/share/polkit-1/actions installierten Dateien dürfen nicht geändert werden. Stattdessen sollten Sie die Berechtigungen unter /etc/polkit-1/localauthority/50-local.d/ ändern.

Hier ist, wie Sie es für diese Frage tun:

Erstellen Sie eine Datei mit dem Namen /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla und bearbeiten Sie sie mit sudoedit wie folgt:

[Allow all users to shutdown]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.stop-multiple-users
ResultInactive=no
ResultActive=yes

Erstellen Sie dann eine andere .pkla -Datei im selben Verzeichnis. Verwenden Sie einen beliebigen Namen, der mit .pkla endet, z. B. allow_all_users_to_restart.pkla, und füllen Sie ihn mit folgendem Inhalt:

[Allow all users to restart]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.restart-multiple-users
ResultInactive=no
ResultActive=yes

Verweise:

33
Flimm

Es gibt einen besseren Weg. Wenn Sie dbus-send installiert haben, können Sie das System über dbus herunterfahren, ohne auf root-Rechte eskalieren zu müssen.

Ich kann mich nicht an die Seite erinnern, auf der sich die Dokumentation befindet, aber ein Archlinux-Benutzer hat dies herausgefunden.

Herunterfahren:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \
          /org/freedesktop/Hal/devices/computer \
          org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

Neustart:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \
          /org/freedesktop/Hal/devices/computer \
          org.freedesktop.Hal.Device.SystemPowerManagement.Reboot

Anhalten:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \
          /org/freedesktop/Hal/devices/computer \
          org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:1

Ruhezustand:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \
          /org/freedesktop/Hal/devices/computer \
          org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate

Grüße.

16
ibuclaw

HAL ist anscheinend veraltet und in den neuesten Ubuntu-Versionen nicht mehr installiert.

Sie müssen ConsoleKit und Power dbus-Dienste verwenden, um den Energiezustand zu verwalten

Ausschalten:

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

Neustart:

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

Aussetzen:

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

Überwintern:

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

Dank Arch Linux Foren .

Dies funktioniert vorerst in Precise und Quantal, es ist jedoch nicht bekannt, wie lange der Fokus von Freedesktop offenbar von ConsoleKit auf systemd verschoben wurde. Ich weiß nicht, ob es Canonical interessiert ...

12
Epeli

Dies funktioniert am 14.04. Eine aktualisierte Variante der vorherigen, IMO, richtig Antwort von Flimm .

Sudo mkdir -p /etc/polkit-1/localauthority/50-local.d
sudoedit /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown_reboot_suspend.pkla 

Fügen Sie dies ein:

[Allow all users to shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off-multiple-sessions
ResultActive=yes

[Allow all users to reboot]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-multiple-sessions
ResultActive=yes

[Allow all users to suspend]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend-multiple-sessions
ResultActive=yes

[Allow all users to ignore inhibit of shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off-ignore-inhibit
ResultActive=yes

[Allow all users to ignore inhibit of reboot]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-ignore-inhibit
ResultActive=yes

[Allow all users to ignore inhibit of suspend]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend-ignore-inhibit
ResultActive=yes
4
Konstigt

Es gibt keine Möglichkeit, die Aufforderung zur Eingabe eines Superuser-Kennworts beim Neustart zu umgehen, während andere Benutzer angemeldet sind, ohne ein Terminalfenster zu öffnen und den Befehl reboot als root auszugeben:

Sudo reboot

Auch wenn die Umgehung der Kennwortabfrage für Ihr Benutzerkonto nicht konfiguriert ist, werden Sie von Sudo zur Eingabe Ihres Kennworts aufgefordert.

Keine Sorge, das sind GUTE Dinge. Ein Neustart sollte selten vorkommen und ein einfaches Administratorkennwort Prompt erspart Ihnen das versehentliche Abspritzen!

1
jathanism

Fügen Sie in die sudoers-Datei, die der Gruppe/dem Benutzer zugeordnet ist, die/der Sie für diese Aufgabe zulassen möchten, einen Stopp und/oder einen Neustart hinzu. Auf diese Weise können Sie weiterhin steuern, wer heruntergefahren werden kann, ohne dass diese Benutzer vollständigen Root-Zugriff auf den Computer haben.

http://linux.byexamples.com/archives/315/how-to-shutdown-and-reboot-without-Sudo-password/

0
tommed

Ich glaube, dies ist nur ein Problem, wenn Sie es über die Befehlszeile tun.

Wenn ja, ist hier ein Link , das bei Ihrem Problem helfen kann.

0
myusuf3