51 votes

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

Si plus d'une personne est connectée sur mon ordinateur, Ubuntu demande une authentification de super utilisateur lors de l'arrêt de l'ordinateur. Comment puis-je faire en sorte que n'importe quel utilisateur puisse éteindre l'ordinateur sans qu'un mot de passe lui soit demandé ?

37voto

Flimm Points 36395

Réponse de Richard Holloway n'est pas la façon dont les autorisations PolickKit sont censées être accordées. Les fichiers installés sous /usr/share/polkit-1/actions ne sont pas destinées à être modifiées. En revanche, vous devez modifier les autorités sous /etc/polkit-1/localauthority/50-local.d/ .

Voici comment procéder pour cette question :

Créer un fichier nommé /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla et l'éditer 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 .pkla dans le même répertoire. Utilisez le nom de votre choix se terminant par .pkla par exemple, allow_all_users_to_restart.pkla et le remplir avec ce contenu :

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

Références :

29voto

Brett Veenstra Points 1447

Vous n'avez pas besoin d'une solution de contournement, il vous suffit de modifier la politique pour vous permettre d'arrêter sans vous authentifier en tant qu'administrateur pour l'arrêt et le redémarrage lorsque plusieurs utilisateurs sont connectés.

Editez le fichier /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy en utilisant votre éditeur de texte favori. Vous aurez besoin des permissions de l'administrateur (root).

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

  <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 personnes sont connectées à partir de

  <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'éteindre et de redémarrer le PC lorsque plusieurs utilisateurs sont connectés. La question de savoir si vous voulez le faire est différente.

16voto

Don Dickinson Points 4208

Il existe une meilleure solution. Si vous avez installé dbus-send, vous pouvez arrêter via dbus sans qu'il soit nécessaire d'escalader les privilèges de l'administrateur (root) .

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

Fermeture :

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

Suspendre :

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

Hiberner :

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

Voir aussi.

12voto

Matt Solnit Points 913

HAL semble avoir été supprimé et n'est plus installé dans les dernières versions d'Ubuntu.

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

Fermeture :

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

Hiberner :

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

Grâce à Arch Linux forums .

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

7voto

Konstigt Points 340

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X