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é ?
Réponses
Trop de publicités?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 :
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.
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.
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...
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
- Réponses précédentes
- Plus de réponses