J'exécute une installation plus ou moins standard d'Ubuntu Precise 12.04 et je suis assez satisfait de faire des tâches quotidiennes avec l'environnement de bureau Unity.
En ce qui concerne le jeu, cependant, je me sens beaucoup plus à l'aise avec LXDE (arrière-plan: dans son état actuel, Unity a des fréquences d'images beaucoup plus faibles que par exemple Unity 2D ou LXDE - c'est un bug connu et en cours d'élaboration).
À cette fin, j'ai créé un profil d'utilisateur de joueur et maintenant je veux le limiter à utiliser uniquement l'environnement de bureau LXDE.
Pour approfondir cela: lorsqu'on me demande de me connecter après le démarrage, je veux que seul LXDE apparaisse comme une option pour le profil d'utilisateur de joueur sur l'écran de connexion tandis que mon profil d'utilisateur standard devrait toujours avoir la possibilité de choisir l'environnement de bureau à utiliser.
Merci d'avance pour toute information qui pourrait être utile!
la source
Réponses:
D'accord, d'après ma compréhension de LightDM (le gestionnaire de connexion), il ne semble pas pris en charge pour restreindre les environnements de bureau pour un utilisateur spécifique . C'est un accord tout ou rien. Par défaut, lorsqu'un utilisateur choisit un environnement de bureau, celui-ci deviendra son environnement de bureau par défaut. Lors de leur prochaine connexion, à moins qu'ils n'en choisissent un autre, ils seront connectés à leur valeur par défaut.
Vous pouvez cependant faire en sorte que l'utilisateur ne puisse pas changer cela. Cet utilisateur pourra toujours sélectionner un autre environnement de bureau, mais s'il le fait, cela ne changera pas sa valeur par défaut. Je crois que c'est la façon la plus sûre de le faire, si vous n'êtes pas inquiet que la personne le change. Il vous suffit de modifier leur
.dmrc
fichier (situé dans leur répertoire personnel, c'est-à-dire / home / user). C'est là que leur session par défaut est stockée. Remplacez laSession
variable de ce fichier par ce que vous voulez, c'estubuntu
-à- dire par défaut Unity DE,ubuntu-2d
Unity 2D etLXDE
LXDE. Pour que cela ne soit pas modifié s'ils se connectent avec un autre DE, nous pouvons simplement le rendre immuable (immuable):Désormais, personne ne pourra modifier ce fichier (root et autres programmes inclus) à moins que vous ne supprimiez l'indicateur immuable:
Si vous ne voulez absolument PAS que cet utilisateur se connecte avec un autre DE, j'ai trouvé un moyen vraiment hacky (c'est-à-dire le faire à vos risques et périls) pour y parvenir. J'étais un peu ennuyé et cela semblait être une chose amusante à essayer. Tous les différents DE que LightDM peut voir sont conservés
/usr/share/xsessions
sous forme de.desktop
fichiers. Pour info, vous pouvez supprimer ceux que vous ne souhaitez pas voir apparaître sur l'écran de connexion (mais cela le supprimera pour TOUS les utilisateurs). Si vous ouvrez l'un d'eux, ils sont assez simples. Ce sont des fichiers de lancement de bureau de base, tout comme tous les raccourcis sur votre bureau. Chacun contient unExec
, ce qui est exécuté lorsque vous choisissez votre DE dans l'écran de connexion (c'est-à-dire quel DE est lancé). Nous allons en profiter et vérifier quel utilisateur se connecte. Si l'utilisateur est notre utilisateur restreint, nous le forcerons à utiliser un certain DE.Tout d'abord, pour chaque
.desktop
fichier,/usr/share/xsessions/
vous devrez créer un script dans/usr/local/bin
. Pour mon exemple, je vais montrer comment faire celaubuntu.desktop
, qui est le DE Unity, et en utilisant LXDE comme DE, nous forçons notre utilisateur restreint (utilisateur restreint) à l'utiliser. En regardant LXDE.desktop, nous pouvons voir que laExec
commande est/usr/bin/startlxde
et il n'y a pas deTryExec
commande. Lorsque vous ouvrez,ubuntu.desktop
nous voyons que laExec
commande estgnome-session --session=ubuntu
et laTryExec
commande estunity
. LaTryExec
commande est exactement ce que cela ressemble. Après avoir exécuté laExec
commande, il essaiera d'exécuter laTryExec
commande, mais s'il échoue, il ne se bloquera pas.Maintenant, en prenant ces commandes que nous avons obtenues des
.desktop
fichiers, nous pouvons créer nos scripts. Nous allons les mettre/usr/share/bin
. Nous devrons en faire deux, un pour leExec
et un pour leTryExec
. Nous allons faire quelque chose comme ça:ubuntude.sh
ubuntudetry.sh
Nous testons simplement si la personne qui se connecte est notre utilisateur restreint et tirons le DE approprié. Maintenant, nous devons nous assurer qu'ils sont exécutables:
Nous devons maintenant changer notre
ubuntu.desktop
afin qu'il appelle nos scripts, au lieu des DE réels. Mettez en commentaire les lignesExec
etTryExec
dans le fichier et remplacez-les par ceci:Répétez simplement le processus pour tout autre DE que vous pourriez avoir. S'il n'y en a pas
TryExec
pour un DE, il n'est pas nécessaire non plus de créer un script detry.sh pour lui, car LXDE n'utilise pas deTryExec
. Évidemment, c'est un peu hacky, et vous devez vous assurer de sauvegarder tous les fichiers avant de les modifier, mais cela fonctionnera si vous devez absolument vous assurer qu'un utilisateur se connecte au bon DE.la source
sur Debian Squeeze et Wheezy, vous pouvez également ajouter un .xsessionrc avec une seule ligne
export STARTUP = XXX
(où XXX est votre script de session forcé, voir Exec-Line ci-dessus) dans le répertoire principal de l'utilisateur pour forcer un certain type de session indépendamment de ce que l'utilisateur a choisi.
Devrait également fonctionner sur Ubuntu.
(Jetez un œil dans /etc/X11/Xsession.d/40x11-common_xsessionrc et 50x11-common_determine-startup pour voir pourquoi cela fonctionne)
la source
La réponse de reverendj1 ne fonctionnait pas pour moi. La raison pourrait être que la valeur que vous spécifiez dans Exec = n'est pas exécutée directement, mais transmise à / etc / X11 / Xsession comme argument. (source: https://askubuntu.com/a/857420/873016 )
Une autre solution au problème:
1. Sauvegardez tous / usr / share / xsessions / fichiers .desktop
2. Supprimez tous / usr / share / xsessions / fichiers .desktop
3. Créer uniquement avec /usr/share/xsessions/default.desktop
"default" est un mot clé pour Xsession et recherchera la session spécifique dans le répertoire de l'utilisateur.
4. Créez maintenant un fichier /home/{username}/.xsession pour chaque nom d'utilisateur. Pour une application "de type kiosque", cela devrait ressembler à ceci:
Si, par exemple, un autre utilisateur doit être autorisé à démarrer un gestionnaire de bureau complet, cela pourrait ressembler à ceci:
Testé sur Ubuntu 16.04 avec lightdm
la source