web-dev-qa-db-fra.com

Supprimer les arrêts, suspendre, redémarrer et mettre en veille prolongée du menu de sélection des utilisateurs

J'utilise un ordinateur de bureau à la fois comme routeur pour mon réseau local et comme ordinateur de bureau normal avec plusieurs utilisateurs. J'ai Maverick qui court dessus. De temps en temps, l'un des utilisateurs du bureau appuie accidentellement sur Arrêter, Redémarrer, Suspendre ou Veille prolongée, ce qui m'oblige à réparer le réseau à des moments aléatoires de la journée. Je sais comment redémarrer et arrêter à partir de la ligne de commande. Je n'ai pas besoin de l'interface graphique.

Comment puis-je supprimer les options d'arrêt, de suspension, de redémarrage et de veille prolongée du menu de commutation d'utilisateur? Tout ce que je veux, c’est "l’écran de verrouillage", la "session d’invité", la liste des utilisateurs et la "déconnexion".

Une solution à l'échelle du système serait préférable, mais je peux en faire une sur chaque utilisateur si nécessaire.

7
Azendale

Option 1:

Installez gconf-editor , exécutez gksu gconf-editor et sur/apps/indicator-session/supprimez le redémarrage et l'arrêt.

Je ne suis pas sûr de suspendre et d'hiberner, peut-être que changer <allow_active> en no sur /usr/share/polkit-1/actions/org.freedesktop.upower.policy fera l'affaire.


Option 2:

Supprimez le package Indicateur de session et ajoutez des raccourcis sur le bureau pour vous déconnecter et verrouiller l'écran.

La commande de déconnexion est gnome-session-save --logout-dialog et pour verrouiller l'écran, utilisez gnome-screensaver-command --lock.

4
sergio91pt

Pour Ubuntu 14.04 et 16.04 (Unity)

Utilisez gsettings pour désactiver la plupart des éléments de menu du menu de session de l'indicateur et utilisez systemctl pour désactiver la capacité de suspension au niveau de systemd. Cette solution n'est cependant pas parfaite.

Comment désactiver les éléments de menu

Pour commencer, recherchez les clés appropriées à l'aide de la commande gsettings et filtrez avec la commande grep. Utilisez "session" et "menu" pour que les mots clés soient filtrés deux fois.

$ gsettings list-recursively | grep session | grep menu
com.canonical.indicator.session suppress-logout-menuitem false
com.canonical.indicator.session force-restart-menuitem false
com.canonical.indicator.session suppress-restart-menuitem false
com.canonical.indicator.session suppress-shutdown-menuitem false
com.canonical.indicator.session user-show-menu true

Ensuite, utilisez gsettings pour définir les clés appropriées avec une valeur opposée aux valeurs actuelles, c.-à-d. "Faux" devient "vrai", et inversement. Exécutez les commandes suivantes, une par une.

$ gsettings set com.canonical.indicator.session suppress-shutdown-menuitem true
$ gsettings set com.canonical.indicator.session suppress-restart-menuitem true
$ gsettings set com.canonical.indicator.session suppress-logout-menuitem true
$ gsettings set com.canonical.indicator.session user-show-menu false

Pour que la touche suppress-logout-menuitem prenne effet, il se peut que l'utilisateur doive recharger le bureau Unity (exécutez la commande unity dans l'invite de commande Terminal ou HUD, sans avoir besoin de vous déconnecter).

Et tout cela est nécessaire pour cacher la plupart des éléments de menu.

Before and after disabling menu items in indicator session

Après les étapes ci-dessus, tous les éléments de menu sont maintenant masqués dans le menu de session de l'indicateur, à l'exception de l'élément de menu "Suspendre". Il y a un bogue ouvert concernant l'impossibilité de cacher le Suspend élément du menu. Confirmer et souscrire à cela peut encourager sa résolution.

Étant donné que l'élément de menu ne peut pas être supprimé directement, la solution la plus simple consiste à désactiver toute suspension au niveau du système.

Comment désactiver la suspension dans Ubuntu 14.04 (Unity, upstart)

Dans la version 14.04, il existe plusieurs façons de désactiver la suspension, c'est-à-dire éditer les fichiers de configuration pour polkit-1 ou pm-utils. Mais il n'y a pas de précision sur ce qui fonctionnera réellement correctement.

Comment désactiver la suspension dans Ubuntu 16.04 (Unity, systemd)

Dans la version 16.04, désactivez toute suspension avec systemd comme indiqué sur le wiki Debian .

$ Sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Created symlink from /etc/systemd/system/sleep.target to /dev/null.
Created symlink from /etc/systemd/system/suspend.target to /dev/null.
Created symlink from /etc/systemd/system/hibernate.target to /dev/null.
Created symlink from /etc/systemd/system/hybrid-sleep.target to /dev/null.

La commande systemctl prendra effet immédiatement. Pas besoin de redémarrer ou quoi que ce soit.

Par conséquent, chaque fois que vous cliquez sur l’option de menu "Suspendre", le système ne se met pas en veille, il ne fait que mettre l’écran à blanc et revenir à l’écran de connexion (effet similaire à "Écran verrouillé").

Solution de contournement pour le problème connu après suspension

Même sans suspension réelle, le même problème connu se posera lors de la reprise de la session en cours: le gestionnaire de réseau ne se réveille pas après la suspension . La solution de contournement consiste à redémarrer le service.

$ Sudo systemctl restart network-manager.service

Le gestionnaire de réseau sera redémarré et la mise en réseau sera à nouveau disponible.

Testé ci-dessus en travaillant dans Ubuntu 16.04 (Unity), fraîchement installé dans VirtualBox.

4
clearkimura

Pour suspendre et hiberner, au lieu d’éditer un fichier de package qui sera remplacé lors de la mise à jour du package, vous pouvez utiliser les fichiers de /etc/polkit-1/localauthority. Désactivez la suspension avec le fichier /etc/polkit-1/localauthority/90-mandatory.d/disable-suspend.pkla contenant:

[Disable suspend]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no

Ceci s’inspire du fichier /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla contenant notamment la configuration permettant de désactiver le mode veille prolongée:

[Disable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=no

Du moins, c'est ce que j'utilise sur Ubuntu 12.04.

Plus d'informations sur l'autorité locale de PolicyKit: http://hal.freedesktop.org/docs/polkit/pklocalauthority.8.html