it-swarm.it

Come posso fare in modo che l'arresto non richieda la password dell'amministratore?

Se più di una persona ha effettuato l'accesso sul mio computer, Ubuntu richiede l'autenticazione da superutente quando si spegne il computer. Come posso fare in modo che qualsiasi utente possa spegnere il computer senza che sia richiesta una password?

49
Isaiah

Non è necessaria una soluzione alternativa, basta modificare i criteri per consentire l'arresto senza autenticazione come amministratore per l'arresto e il riavvio quando più utenti hanno effettuato l'accesso.

Modifica il file /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy usando il tuo editor di testo preferito. Avrai bisogno dei permessi di root.

Modificare la sezione relativa allo spegnimento quando altri sono connessi

  <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>

per

  <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>

e la sezione relativa al riavvio quando altri sono connessi

  <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>

per

  <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>

E ciò ti permetterà di spegnere e riavviare il PC quando più utenti hanno effettuato l'accesso. Se vuoi farlo è una domanda diversa.

27

la risposta di Richard Holloway non è in realtà il modo in cui le autorizzazioni PolickKit devono essere concesse. I file installati in /usr/share/polkit-1/actions non sono pensati per essere modificati. Invece, è necessario modificare le autorizzazioni in /etc/polkit-1/localauthority/50-local.d/.

Ecco come lo fai per questa domanda:

Crea un file chiamato /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla e modificalo usando sudoedit per assomigliare a questo:

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

Quindi crea un altro file .pkla nella stessa directory. Usa qualsiasi nome che ti piace che termina con .pkla, ad esempio allow_all_users_to_restart.pkla, e riempilo con questi contenuti:

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

Riferimenti:

33
Flimm

C'è un modo migliore Se dbus-send è installato, è possibile arrestare tramite dbus senza la necessità di passare ai privilegi di root.

Non ricordo la pagina in cui si trova la documentazione, ma un utente Archlinux l'ha capito.

Shutdown:

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

Reboot:

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

Sospendere:

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

Hibernate:

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

Saluti.

16
ibuclaw

HAL sembra ora essere depcrecato e non installato nelle ultime versioni di Ubuntu.

È necessario utilizzare i servizi ConsoleKit e Power dbus per gestire lo stato di alimentazione

Spegnimento:

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

Ricomincia:

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

Sospendere:

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

Hibernate:

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

Grazie ad Arch Linux forum .

Funziona per ora in Precise e Quantal, ma non so per quanto tempo da quando l'attenzione di Freedesktop sembra essere spostata da ConsoleKit a systemd. Non so se la cura canonica ...

12
Epeli

Funziona il 14.04. Una variazione aggiornata della precedente, IMO, corretta risposta di 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 

Incolla questo dentro:

[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

Non è possibile eludere il prompt per la password di un superutente quando si riavvia mentre altri utenti accedono prima di aprire una finestra del terminale ed emettere il comando reboot come root:

Sudo reboot

Anche se, se non configurato per bypassare la richiesta di password per il tuo account utente, Sudo ti chiederà anche la password.

Non preoccuparti, queste sono cose BUONE. Il riavvio dovrebbe essere raro e una semplice password dell'amministratore Prompt ti salva accidentalmente perdendo te stesso!

1
jathanism

Aggiungi halt e/o riavvia nel file sudoers assegnato al gruppo/utente che desideri consentire di eseguire questa attività. In questo modo puoi ancora controllare chi può arrestare, ma senza dare loro l'accesso root completo alla macchina.

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

0
tommed

Credo che questo sia solo un problema quando lo si fa attraverso la riga di comando.

In tal caso, ecco un link che può aiutarti a risolvere il tuo problema.

0
myusuf3