web-dev-qa-db-fra.com

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

Si plusieurs personnes sont connectées à mon ordinateur, Ubuntu requiert l’authentification du super-utilisateur lors de l’arrêt de l’ordinateur. Comment puis-je faire en sorte que tout utilisateur puisse éteindre l'ordinateur sans qu'un mot de passe ne lui soit demandé?

49
Isaiah

Vous n'avez pas besoin d'une solution de contournement, il suffit de modifier la stratégie pour vous permettre de vous 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 à l'aide de votre éditeur de texte préféré. Vous aurez besoin d'autorisations root.

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

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

Et cela vous permettra d’arrêter et de redémarrer le PC lorsque plusieurs utilisateurs sont connectés. Si vous souhaitez le faire, la question est différente.

27
Richard Holloway

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 doivent pas ê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 éditez-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 le nom de votre choix qui se termine par .pkla, par exemple, allow_all_users_to_restart.pkla, et remplissez-le avec le contenu suivant:

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

Références:

33
Flimm

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

Je ne me souviens pas 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émarrage:

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.

16
ibuclaw

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

Vous devez utiliser les services ConsoleKit et Power dbus pour gérer l'état d'alimentation.

Fermer:

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

Merci à Arch Linux forums .

Cela fonctionne pour le moment dans Precise et Quantal, mais je ne sais pas depuis combien de temps le focus de Freedesktop semble avoir été déplacé de ConsoleKit vers systemd. Je ne sais pas si Canonical se soucie ...

12
Epeli

Cela fonctionne le 14.04. Une variation 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
4
Konstigt

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

Sudo reboot

Même quand même, s'il n'est pas configuré pour ignorer la demande 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 doit être rare et un mot de passe administrateur simple. Invite enregistre accidentellement l’arrosage!

1
jathanism

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

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

0
tommed

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

Si tel est le cas, un lien peut vous aider à résoudre votre problème.

0
myusuf3