it-swarm-es.com

¿Cómo puedo hacer que el apagado no requiera contraseña de administrador?

Si más de una persona ha iniciado sesión en mi computadora, Ubuntu requiere autenticación de superusuario al apagar la computadora. ¿Cómo puedo lograr que cualquier usuario pueda apagar la computadora sin que se le solicite una contraseña?

49
Isaiah

No necesita una solución alternativa, solo cambie la política para permitirle cerrar sin autenticarse como administrador para el apagado y reiniciar cuando varios usuarios inicien sesión.

Edite el archivo /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy utilizando su editor de texto favorito. Necesitarás permisos de root.

Cambie la sección relacionada con el apagado cuando otros inicien sesión desde

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

a

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

y la sección relacionada con el reinicio cuando otros inician sesión desde

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

a

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

Y eso le permitirá apagar y reiniciar la PC cuando varios usuarios inicien sesión. Si desea hacerlo, esa es una pregunta diferente.

27
Richard Holloway

La respuesta de Richard Holloway no es en realidad la forma en que se deben otorgar las autorizaciones de PolickKit. Los archivos instalados bajo /usr/share/polkit-1/actions no deben modificarse. En su lugar, debe modificar las autoridades en /etc/polkit-1/localauthority/50-local.d/.

Así es como lo haces para esta pregunta:

Cree un archivo llamado /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla y edítelo usando sudoedit para que se vea así:

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

Luego cree otro archivo .pkla en el mismo directorio. Use cualquier nombre que desee terminar con .pkla, por ejemplo, allow_all_users_to_restart.pkla, y complételo con estos contenidos:

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

Referencias

33
Flimm

Hay una mejor manera. Si tiene instalado dbus-send, puede cerrar mediante dbus sin la necesidad de escalar a privilegios de root.

No recuerdo la página donde está la documentación, pero un usuario de Archlinux descubrió esto.

Apagado:

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

Reiniciar:

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

Suspender:

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

Hibernar:

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

Saludos.

16
ibuclaw

HAL parece estar ahora descremado y no instalado en las últimas versiones de Ubuntu.

Debe usar los servicios ConsoleKit y Power dbus para administrar el estado de energía

Apagar:

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

Reiniciar:

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

Suspender:

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

Hibernar:

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

Gracias a Arch Linux foros .

Esto funciona por ahora en Precise y Quantal, pero no sé por cuánto tiempo ya que el enfoque de Freedesktop parece haber cambiado de ConsoleKit a systemd. No sé si a Canonical le importa ...

12
Epeli

Esto funciona en 14.04. Una variación actualizada de la anterior, IMO, correcta respuesta de 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 

Pega esto adentro:

[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

No hay forma de eludir la Solicitud de una contraseña de superusuario al reiniciar mientras otros usuarios inician sesión antes de abrir una ventana de terminal y emitir el comando reboot como root:

Sudo reboot

Aún así, si no está configurado para omitir la solicitud de contraseña para su cuenta de usuario, Sudo también le solicitará su contraseña.

No te preocupes, estas son cosas BUENAS. El reinicio debe ser poco frecuente y una simple contraseña de administrador ¡El aviso se guarda accidentalmente en la manguera!

1
jathanism

Agregue detener y/o reiniciar en el archivo sudoers asignado al grupo/usuario que desea permitir realizar esta tarea. De esa forma, aún puede controlar quién puede apagar, pero sin darles acceso completo a la raíz de la máquina.

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

0
tommed

Creo que esto es solo un problema al hacerlo a través de la línea de comando.

Si es así, aquí hay un enlace que puede ayudarlo con su problema.

0
myusuf3