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