Forum Linux.debian/ubuntu Gnome 3 et stockage de la configuration

Posté par  (site web personnel) .
1
4
sept.
2012

Salut,

Je suis en train de passer une salle de TP (1 serveur + 9 postes, home directories étudiants montés par NFS, authentification NIS) de Ubuntu 10.04LTS en Ubuntu 12.04.1LTS. Pas la joie, mais le NFS a fini par re-fonctionner, l'authentification NIS aussi (via le login manager de kde…).

J'ai encore un problème qui m'embête: une des machines a un compte "modèle", qu'on édite et configure aux petits oignons, puis qu'on duplique en écrasant complètement les comptes de travail des étudiants (rm -rf puis recopie + droits + modifs des fichiers textes de config qui codent en absolu le chemin de l'utilisateur au lieu d'utiliser un relatif au home - genre OpenOffice dans ses prefs xml).

Problème: avec le passage à Gnome3, les réglages aux petits oignons ne sont pas propagés, et on retrouve les réglages par défaut. Après recherche j'ai trouvé que le passage s'est fait de GConf à GSettings… et que ça semble utiliser un base de données binaire (qui a osé) dans ~/.config/dconf/user.

Quelqu'un sait-il comment faire pour passer - au moins de façon intermédiaire, sinon de façon permanente - à une représentation textuelle des préférences (quitte à ce que GSettings reconstruise sa base lors de la connexion), afin que le système de script puisse continuer à fournir son service.

Sinon… je vais finir par changer d'environnement de bureau pour les étudiants (XFCE… LXDE… ou plus lourd, KDE).

Note: placé dans le forum Debian/Ubuntu car l'install est sous Ubuntu… mais c'est plus un problème Gnome.

  • # dconf-editor

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    Il existe un editeur :

    dconf-editor ~/.config/dconf/user
    
    

    On ne peut pas mettre d'array dans le string...

    • [^] # Re: dconf-editor

      Posté par  (site web personnel) . Évalué à 1.

      Merci pour cette première piste, ça m'a permis de trouver qu'il existe aussi dconf-editor.

      Bon, manque plus qu'à pouvoir lister toutes les clés pour énumérer les clés/valeurs afin de modifier les valeurs où je retrouve le login utilisateur… je creuse…

      Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

      • [^] # Re: dconf-editor

        Posté par  (site web personnel) . Évalué à 2. Dernière modification le 04 septembre 2012 à 21:15.

        Oups…

        ça m'a permis de trouver qu'il existe aussi gsettings (ligne de commande)

        Et gsettings list-recursively me donne toutes les entrées. Aplus qu'à filtrer et modifier.

        Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

  • # ca se fait encore des trucs pareils ?

    Posté par  . Évalué à 2.

    un compte "modèle", qu'on édite et configure aux petits oignons, puis qu'on duplique en écrasant complètement les comptes de travail des étudiants (rm -rf puis recopie + droits + modifs des fichiers textes de config qui codent en absolu le chemin de l'utilisateur au lieu d'utiliser un relatif au home - genre OpenOffice dans ses prefs xml)

    y a pas moins de simplement le mettre dans /etc/skel
    pour que ce soit creer dans /home à la premiere connexion de l'utilisateur ?

    il me semblait pourtant que c'etait le role de /etc/skel
    par contre je n'ai jamais testé savoir s'il prenait en charge les fichiers de configuration des applis telles que firefox, thunderbird, openoffice…

    • [^] # Re: ca se fait encore des trucs pareils ?

      Posté par  (site web personnel) . Évalué à 1.

      /etc/skel sert à la création initiale du compte et contient assez peu de choses, il faudrait pouvoir aller y manipuler des .conf/truc/machin afin de paramétrer les différents logiciels… AMA faisable peut-être à la main avec des environnements légers, mais incompatible avec du Gnome3 et avec certains softs.

      De plus, /etc/skel est utilisé lors de la création du compte. Là on a des comptes banalisés (login+mdp bateaux), utilisés pour une séance de TP, et avec le script on réinitialise les comptes pour la séance suivante en une minute via un script sur le serveur.

      Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

      • [^] # Re: ca se fait encore des trucs pareils ?

        Posté par  . Évalué à 4.

        il me semble que le /etc/skel est utilisé quand le home de l'utilisateur est créé.
        tu peux tres bien generer ce home à l'ouverture de la session.

        pour purger il suffit alors de vider le /home

        du coup ton utilisateur "modele" doit avoir son home dans /etc/skel
        ca devrait marcher pour pas mal de config (qui n'aurait pas les chemins ou le nom de l'utilisateur en dur dedans)

        à voir quand meme si les scripts du systeme savent gerer les fichiers de config plus complexes que des fichiers textes ou qui auraient des chemins en dur dedans.

        • [^] # Re: ca se fait encore des trucs pareils ?

          Posté par  (site web personnel) . Évalué à 1.

          C'est à tester, le home du modèle vers /etc/skel.

          Après…

          • quid des droits
          • quid des applis qui stockent des chemins absolus dans les prefs (grrr)
          • est-ce qu'une connexion NFS+NIS sur un poste client régénèrera le home de l'utilisateur à partir du skel sur le serveur

          Je ne vais peut-être pas tester tout de suite :-)

          Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

          • [^] # Re: ca se fait encore des trucs pareils ?

            Posté par  . Évalué à 2.

            • les scripts initiaux du systeme clone /etc/skel en /home/user en lui donnant les bons droits,
              c'est meme prevu pour ca

            • pour les applis qui stockent des chemins absolus en dur, c'est le mal, et là, pas trop le choix, je ne crois pas que les scripts du systeme changent ca lors de la copie (mais je n'ai pas regardé plus que ca le detail du fonctionnement)

            • NFS+NIS, bah il faut que le /etc/skel de la machine pointe vers le /etc/skel du serveur (par NFS par exemple), histoire qu'il soit commun à tous tes postes

            sinon du coup, tu sais qu'il existe une solution baptisé LTSP, qui convertit tes PCs eleves en terminaux et qui prend tout sur le serveur.

            ainsi tu veux ajouter une appli, hop, tu l'installes sur le serveur et c'est disponible pour tous les eleves, etc

            • [^] # Re: ca se fait encore des trucs pareils ?

              Posté par  (site web personnel) . Évalué à 2.

              Je connais, c'est dans les projets - LTS / netboot - mais pas encore franchi le pas.

              Ça a été une salle sous Windows, puis sous Linux, puis avec du NFS+NIS… évolution lente, c'est pas mon boulot principal et la salle est utilisée.

              Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

            • [^] # Re: ca se fait encore des trucs pareils ?

              Posté par  (site web personnel) . Évalué à 2.

              les scripts initiaux du systeme clone /etc/skel en /home/user en lui donnant les bons droits,
              c'est meme prevu pour ca

              Ce que tu appelles les scripts initiaux, c'est le adduser (et useradd & Co), ou bien la gestion de connexion utilisateur lors de son premier login ?

              Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

              • [^] # Re: ca se fait encore des trucs pareils ?

                Posté par  . Évalué à 2.

                les deux
                - le adduser (ou le useradd) l'un des deux ne faisant que creer l'utilisateur, l'autre creant l'environnement de l'utilisateur
                - le pam_mkdir qui permet de creer le dossier lors de la premier connexion de l'utilisateur si le dossier n'existe pas encore.

      • [^] # Re: ca se fait encore des trucs pareils ?

        Posté par  . Évalué à 2.

        Il me semble que KDE contient également des outils (kiosk) pour paramétrer l'environnement, et tous les logiciels KDE, peut-être que ça peut t'intéresser. J'envisageais pendant un moment de l'utiliser pour un poste libre-service, mais finalement ça ne s'est pas fait.

        http://techbase.kde.org/KDE_System_Administration/Kiosk/Introduction

  • # Solution

    Posté par  (site web personnel) . Évalué à 4.

    J'ai monté toutes les salles infos de mon école d'ingé en double boot Windows/Ubuntu avec auth Active Directory…

    Et bizarrement, j'ai bien galérer la dessus mais c'est très simple en fait:

    $ cat /usr/share/glib-2.0/schemas/19_ensat.gschema.override

    [com.canonical.indicator.session]
    suppress-restart-menuitem=true
    
    [org.gnome.nautilus.desktop]
    computer-icon-visible=false
    home-icon-visible=false
    network-icon-visible=false
    trash-icon-visible=false
    
    

    # glib-compile-schemas /usr/share/glib-2.0/schemas/

    et c'est torché

    • [^] # Re: Solution

      Posté par  (site web personnel) . Évalué à 2.

      Question: est-ce que tu montes un /usr commun (réseau) sur tes clients ?

      (histoire de ne pas refaire la manip glib-compile-schemas sur chaque client)

      Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

  • # base de données binaire???

    Posté par  (site web personnel) . Évalué à 2.

    C'était quoi le problème avec un bête fichier de conf clef=valeur?

    Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

    • [^] # Re: base de données binaire???

      Posté par  (site web personnel) . Évalué à 2.

      Faut demander aux développeurs de Gnome :-)

      Il semble qu'il y en aient encore qui se baladent (cf la réponse de gnumdk avec /usr/share/glib-2.0/schemas/19_ensat.gschema.overrid). Qu'ils soient transformés sous une autre forme par et pour un logiciel X ou Y ne me gène pas en tant que tel… si c'est fait de façon transparente. Malheureusement ça ne semble pas le cas (gnumdk indique une recompilation puis une diffusion via puppet).

      Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.