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é?
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.
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
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.
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 ...
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
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!
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/
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.