Comment faire en sorte que l'arrêt ne nécessite pas de mot de passe administrateur?

46

Si plusieurs personnes sont connectées sur mon ordinateur, Ubuntu requiert une authentification superutilisateur lors de l’arrêt de l’ordinateur. Comment puis-je le faire pour que tout utilisateur puisse éteindre l'ordinateur sans être invité à saisir un mot de passe?

    
posée Isaiah 05.08.2010 - 18:11
la source

9 réponses

27

Vous n'avez pas besoin d'une solution de contournement, modifiez simplement la stratégie pour vous permettre de vous arrêter sans authentification en tant qu'administrateur pour l'arrêt et le redémarrage lorsque plusieurs utilisateurs sont connectés.

Modifiez le fichier /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy en utilisant votre éditeur de texte préféré. Vous aurez besoin des droits root.

Modifier la section relative à l’arrêt lorsque d’autres personnes sont connectées

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

à

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

et la section relative au redémarrage lorsque d’autres utilisateurs sont connectés depuis

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

à

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

Cela vous permettra d’arrêter et de redémarrer le PC lorsque plusieurs utilisateurs sont connectés. Que vous vouliez faire cela est une question différente.

    
réponse donnée Richard Holloway 06.08.2010 - 16:00
la source
31

La réponse de Richard Holloway n’est pas réellement la manière dont les autorisations PolickKit sont censées être accordées. Les fichiers installés sous /usr/share/polkit-1/actions ne sont pas destinés à être modifiés. Au lieu de cela, vous devez modifier les autorités sous /etc/polkit-1/localauthority/50-local.d/ .

Voici comment vous le faites pour cette question:

Créez un fichier nommé /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla et modifiez-le en utilisant sudoedit pour ressembler à ceci:

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

Créez ensuite un autre fichier .pkla dans le même répertoire. Utilisez n'importe quel nom que vous souhaitez terminer avec .pkla , par exemple, allow_all_users_to_restart.pkla , et remplissez-le avec ces contenus:

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

Références:

réponse donnée Flimm 06.02.2013 - 12:51
la source
16

Il y a un meilleur moyen. Si vous avez installé dbus-send, vous pouvez arrêter via dbus sans avoir à passer aux privilèges root .

Je ne me souviens plus de la page où se trouve la documentation, mais un utilisateur d'Archlinux l'a compris.

Arrêt:

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

Redémarrer:

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

Suspendre:

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

Cordialement.

    
réponse donnée ibuclaw 06.08.2010 - 09:31
la source
12

HAL semble être maintenant dépecé et non installé dans les dernières versions d'Ubuntu.

Vous devez utiliser ConsoleKit et UPower services dbus pour gérer l'état de l'alimentation

Arrêt:

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

Redémarrer:

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

Suspendre:

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

Merci aux forums de Arch Linux.

Cela fonctionne pour l'instant dans Precise et Quantal, mais vous ne savez pas depuis combien de temps le focus de Freedesktop semble être passé de ConsoleKit à systemd. Je ne sais pas si Canonical s'en soucie ...

    
réponse donnée Epeli 15.10.2012 - 14:23
la source
4

Cela fonctionne le 14.04. Une variante mise à jour de la précédente, IMO, corrige la réponse 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 

Collez ceci à l'intérieur:

[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
    
réponse donnée Konstigt 21.06.2014 - 19:01
la source
1

Il n’ya aucun moyen de contourner l’invite pour un mot de passe de superutilisateur lors du redémarrage alors que les autres utilisateurs sont connectés avant d’ouvrir une fenêtre de terminal et d’émettre la commande reboot en tant que root:

sudo reboot

Même si vous n'êtes pas configuré pour ignorer les invites de mot de passe pour votre compte d'utilisateur, sudo vous demandera également votre mot de passe.

Ne vous inquiétez pas, ce sont de bonnes choses. Le redémarrage devrait être rare et une simple invite de mot de passe admin évite de vous arroser accidentellement!

    
réponse donnée jathanism 05.08.2010 - 19:06
la source
0

Je crois que ce n’est qu’un problème lorsque vous le faites via la ligne de commande.

Si tel est le cas, voici un lien . cela peut aider avec votre problème.

    
réponse donnée myusuf3 05.08.2010 - 18:16
la source
0

Ajoutez halt et / ou reboot dans le fichier sudoers assigné au groupe / utilisateur que vous souhaitez autoriser pour effectuer cette tâche. De cette façon, vous pouvez toujours contrôler qui peut arrêter, mais sans leur donner un accès root complet à la machine.

lien

    
réponse donnée tommed 06.12.2010 - 16:19
la source
-1

Apparemment, vous êtes en mesure de vous arrêter sans root depuis l'interface graphique car gdm s'exécute en tant que root. Gnome dit à gdm de s'arrêter et gdm le fait.

Vous pouvez faire quelque chose de similaire avec un script. Je ne sais pas si vous êtes à l'aise avec BASH, mais je pense que l'on pourrait écrire un script qui s'exécute en tant que root et, lorsqu'il reçoit un certain signal, lance la commande shutdown.

N'oubliez pas que cela peut poser un problème de sécurité.

    
réponse donnée mac9416 05.08.2010 - 18:58
la source

Lire d'autres questions sur les étiquettes