IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applications et environnements graphiques Discussion :

Connaître l'environnement graphique de l'utilisateur courant


Sujet :

Applications et environnements graphiques

  1. #1
    Rédacteur


    Homme Profil pro
    Instituteur retraité
    Inscrit en
    Novembre 2015
    Messages
    891
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Instituteur retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 891
    Points : 4 157
    Points
    4 157
    Billets dans le blog
    1
    Par défaut Connaître l'environnement graphique de l'utilisateur courant
    Bonjour,

    J'ai besoin de connaître l'environnement graphique de l'utilisateur courant depuis un script lancé avec des droits root. Ce script doit pouvoir être utilisable sur n'importe quelle distribution de Debian ou dérivée. En fait je dois vérifier que l'environnement graphique est bien XFCE.

    Je le teste par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if [ "$XDG_CURRENT_DESKTOP" != "XFCE" ]
    Mais j'obtiens un comportement différent sous Debian et sous Ubuntu.
    Sous Debian, que le script soit lancé après être passé en root par su, ou bien qu'il soit lancé avec sudo après installation de sudo, la variable d'environnement renvoie bien la même réponse.
    Mais sous Ubuntu, si le script est lancé avec sudo, la variable d'environnement est vide.

    Quelqu'un a-t-il une solution permettant de résoudre ce problème ?
    Plus on apprend, plus on découvre que ce que l'on sait est insignifiant face à tout ce que l'on ne sait pas.
    Retrouvez la liste de mes articles et tutoriels sur la sauvegarde-restauration, les distributions éducatives, le système Linux et le Raspberry pi en cliquant sur ce lien.

  2. #2
    Rédacteur


    Homme Profil pro
    Instituteur retraité
    Inscrit en
    Novembre 2015
    Messages
    891
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Instituteur retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 891
    Points : 4 157
    Points
    4 157
    Billets dans le blog
    1
    Par défaut
    J'ai en tête l'idée suivante : tester la présence d'un composant essentiel de XFCE parmi les processus actifs, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xfce=$(ps -e | grep "xfce4-session")
    if [ -z "$xfce" ]
    Qu'en pensez-vous ? Voyez-vous des failles dans cette solution ?
    Plus on apprend, plus on découvre que ce que l'on sait est insignifiant face à tout ce que l'on ne sait pas.
    Retrouvez la liste de mes articles et tutoriels sur la sauvegarde-restauration, les distributions éducatives, le système Linux et le Raspberry pi en cliquant sur ce lien.

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 355
    Points : 42 834
    Points
    42 834
    Par défaut
    Les variables d'environnement appartiennent à l'utilisateur courant, l'appel à sudo les fait perdre. L'option -E de sudo permet de préserver l'environnement. L'option -m de su permet la même chose.

    Debian n'intègre pas sudo par défaut, il faut l'installer,tandis que Ubuntu n'a pas de compte root actif par défaut (il faut donc utiliser sudo pour les commandes nécessitant des privilèges).

    Il n'y a pas de commande universelle retournant l'interface graphique utilisée.

    Tu peux rechercher la variable d'environnement DESKTOP_SESSION valant xfce sur Debian et Ubuntu.

    L'interface graphique doit être démarrée
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Rédacteur


    Homme Profil pro
    Instituteur retraité
    Inscrit en
    Novembre 2015
    Messages
    891
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Instituteur retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 891
    Points : 4 157
    Points
    4 157
    Billets dans le blog
    1
    Par défaut
    DESKTOP_SESSION ne renvoie pas toujours les infos utiles d'environnement graphique.

    Par exemple, sur une Debian avec XFCE, on obtient :
    lightdm-xsession

    Sous xubuntu on obtient quelque chose de plus utile :
    xubuntu
    Plus on apprend, plus on découvre que ce que l'on sait est insignifiant face à tout ce que l'on ne sait pas.
    Retrouvez la liste de mes articles et tutoriels sur la sauvegarde-restauration, les distributions éducatives, le système Linux et le Raspberry pi en cliquant sur ce lien.

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 355
    Points : 42 834
    Points
    42 834
    Par défaut
    J'ai testé vite fait sur une Debian et une Ubuntu sans installer lightdm ou xdm. J'avais la variable DESKTOP_SESSION positionnée sur xfce, mais pas de variable XDG_CURRENT_DESKTOP. La solution n'est donc pas fiable à 100%

    Tu pourrais faire quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dpkg -l | grep ii | grep xfce | wc -l
    retournant rien si non présence de xfce.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Rédacteur


    Homme Profil pro
    Instituteur retraité
    Inscrit en
    Novembre 2015
    Messages
    891
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Instituteur retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 891
    Points : 4 157
    Points
    4 157
    Billets dans le blog
    1
    Par défaut
    J'avais pensé à une solution de ce type, mais xfce peut être installé sans que ce soit l'environnement de bureau de l'utilisateur courant.
    La solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xfce=$(ps -e | grep "xfce4-session")
    if [ -z "$xfce" ]
    que j'ai testée me semble pour l'instant être la meilleure sauf s'il y a une faille qui m'échappe. Peut-être éventuellement celle-ci: si deux utilisateurs sont connectés, avec des environnements différents, xfce4-session serait dans les processus actifs sans que ce soit l'environnement de l'utilisateur courant. Mais là c'est un cas peu probable et qui ne posera pas problème pour ce que je souhaite faire.
    Plus on apprend, plus on découvre que ce que l'on sait est insignifiant face à tout ce que l'on ne sait pas.
    Retrouvez la liste de mes articles et tutoriels sur la sauvegarde-restauration, les distributions éducatives, le système Linux et le Raspberry pi en cliquant sur ce lien.

Discussions similaires

  1. fonction qui permet de connaître l'utilisateur courant
    Par new_wave dans le forum Développement
    Réponses: 5
    Dernier message: 18/04/2008, 16h37
  2. Réponses: 5
    Dernier message: 11/10/2005, 12h40
  3. Environnement graphique sosu window...
    Par Invité dans le forum C
    Réponses: 17
    Dernier message: 01/10/2005, 21h56
  4. Réponses: 3
    Dernier message: 07/05/2004, 11h01
  5. Environnement graphique et portabilité
    Par viddak dans le forum Linux
    Réponses: 3
    Dernier message: 11/06/2003, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo