Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:lebardix:tutos:primtux-partage-de-donnees [30/09/2018 23:11] lebardix [Installation] |
utilisateurs:lebardix:tutos:primtux-partage-de-donnees [01/10/2018 00:23] lebardix [Utilisation] |
||
---|---|---|---|
Ligne 155: | Ligne 155: | ||
=== lightdm connexion === | === lightdm connexion === | ||
- | Rappellons que les machines Primtux sont "mono-utilisateur" **1 seul utilisateur sur 1 seule machine à la fois.** | + | Rappellons que les machines Primtux sont "mono-utilisateur" **1 seul utilisateur sur 1 seule machine à la fois**. |
- | Nous monterons donc les ressources partagées (suivant une information donnée par l'utilisateur d'appartenance à telle ou telle classe **) | + | |
- | avec lightdm à la connexion de l'utilisateur. | + | Nous monterons donc les ressources partagées (suivant une information donnée par l'utilisateur d'appartenance à telle ou telle classe) avec lightdm à la connexion de l'utilisateur. |
- | Pour cela Lighdm dispose de 2 paramêtres: session-setup-script et session-cleanup-script définissant des scripts exécutés par root. | + | |
+ | Pour cela Lightdm dispose de 2 paramètres définissant des scripts exécutés par root: | ||
+ | * session-setup-script | ||
+ | * session-cleanup-script | ||
nous utilisons alors ces scripts pour monter et demonter nos partages | nous utilisons alors ces scripts pour monter et demonter nos partages | ||
[[/etc/lightdm/session/session-setup.sh]] à la connexion | [[/etc/lightdm/session/session-setup.sh]] à la connexion | ||
Ligne 165: | Ligne 169: | ||
== Adapter l'écran de connexion de primtux == | == Adapter l'écran de connexion de primtux == | ||
Primtux propose une interface de connexion simplifiée pour les enfants. | Primtux propose une interface de connexion simplifiée pour les enfants. | ||
- | 4 images permettent de choisir l'utilisateur parmi mini,maxi,super et administrateur (le maitre). Quelques boutons sont disponibles pour controler le PC parmi Arreter, Hiberner, Veille, Redémarrer. | + | |
+ | 4 images permettent de choisir l'utilisateur parmi mini,maxi,super et administrateur (le maitre) | ||
+ | |||
+ | et quelques boutons sont disponibles pour contrôler le PC parmi "Arrêter, Hiberner, Veille, Redémarrer". | ||
Il manque donc une liste pour la sélection de l'appartenance de l'utilisateur à telle ou telle classe. | Il manque donc une liste pour la sélection de l'appartenance de l'utilisateur à telle ou telle classe. | ||
Nous allons donc rajouter dans l'interface de connexion ce choix avec le sélecteur de session habituel. | Nous allons donc rajouter dans l'interface de connexion ce choix avec le sélecteur de session habituel. | ||
+ | |||
Commençons par ajouter les différentes sessions souhaitées | Commençons par ajouter les différentes sessions souhaitées | ||
== Créer les sessions spécifiques par classe == | == Créer les sessions spécifiques par classe == | ||
- | il n'est prédéfini qu'une seule session "fluxbox", donc pour différencier les classes nous dupliquons simplement la session existante sous d'autres noms correspondant aux critères d'organisation (pour l'exemple j'ai choisi une différensation par niveau classe). | + | Il n'est prédéfini qu'une seule session "fluxbox", |
- | en root | + | |
- | copier [[/usr/share/xsessions/fluxbox.desktop]] en /usr/share/xsessions/fluxbox-cp.desktop | + | donc pour différencier les classes nous dupliquons simplement la session existante sous d'autres noms correspondant aux critères d'organisation (pour l'exemple j'ai choisi une différentiation par niveau classe). |
- | copier [[/usr/share/xsessions/fluxbox.desktop]] en [[/usr/share/xsessions/fluxbox-ce1.desktop]] | + | |
+ | <code root> | ||
+ | cp /usr/share/xsessions/fluxbox.desktop /usr/share/xsessions/fluxbox-cp.desktop | ||
+ | cp /usr/share/xsessions/fluxbox.desktop /usr/share/xsessions/fluxbox-ce1.desktop | ||
... | ... | ||
- | copier [[/usr/share/xsessions/fluxbox.desktop]] en [[/usr/share/xsessions/fluxbox-cm2.desktop]] | + | cp /usr/share/xsessions/fluxbox.desktop /usr/share/xsessions/fluxbox-cm2.desktop |
+ | cp /usr/share/xsessions/fluxbox.desktop /usr/share/xsessions/fluxbox-bonjour.desktop | ||
+ | </code> | ||
(on pourrait imaginer une organisation avec le nom des professeurs ou tout autre choix) | (on pourrait imaginer une organisation avec le nom des professeurs ou tout autre choix) | ||
- | ensuite on va modifier, pour chaque nouvelle session créée, le parametre Name=fluxbox avec le texte qui appraitra dans le sélecteur | + | ensuite on va modifier, pour chaque nouvelle session créée, le paramètre **Name**=fluxbox avec le texte qui apparaîtra dans le sélecteur **Name**=//Classe de CP// pour fluxbox-cp.desktop, et ainsi de suite... |
- | Name=Classe de CP pour fluxbox-cp.desktop, et ainsi de suite... | + | |
== Modifier l'interface de connexion == | == Modifier l'interface de connexion == | ||
- | Nous allons maintenant rajouter dans l'interface de connexion pour ajouter la liste déroulante du choix des différentes sessions que nous venons de créer. | + | |
- | La présentation de l'écran de connexion de [[LightDm]] (dénommé greeter) est lightdm-webkit-greeter. Elle est configurable à l'aide de thèmes. | + | Nous allons maintenant rajouter dans l'interface de connexion la liste déroulante du choix des différentes sessions que nous venons de créer. |
- | Primtux a été dessiné autour du theme pretty, nous allons donc retoucher le fichier [[/usr/share/lightdm-webkit/themes/pretty/index.html]] | + | |
- | pour ajouter le "session selector" | + | La présentation de l'écran de connexion de [[LightDm]] (dénommé greeter) est lightdm-webkit-greeter. |
- | cf: https://askubuntu.com/questions/414344/how-to-add-a-session-type-button-to-lightdm-webkit-greeter-theme | + | |
+ | Elle est configurable à l'aide de thèmes. | ||
+ | |||
+ | Primtux a été dessiné autour du thème pretty, nous allons donc retoucher le fichier [[/usr/share/lightdm-webkit/themes/pretty/index.html]] pour ajouter le "session selector" | ||
+ | <note>cf: https://askubuntu.com/questions/414344/how-to-add-a-session-type-button-to-lightdm-webkit-greeter-theme</note> | ||
<file html /usr/share/lightdm-webkit/themes/pretty/index.html> | <file html /usr/share/lightdm-webkit/themes/pretty/index.html> | ||
Ligne 198: | Ligne 214: | ||
<script type="text/javascript" src="js/greeter.js"></script> | <script type="text/javascript" src="js/greeter.js"></script> | ||
+ | <!-- lignes à insérer --> | ||
<script type="text/javascript"> | <script type="text/javascript"> | ||
function show_message(text) | function show_message(text) | ||
Ligne 253: | Ligne 269: | ||
</script> | </script> | ||
+ | <!-- fin des lignes à insérer --> | ||
</head> | </head> | ||
Ligne 288: | Ligne 305: | ||
</file> | </file> | ||
- | Nous retrouvons donc le sélecteur de session en haut à gauche de la page de connexion | + | Nous avons donc ajouter le sélecteur de session en haut à gauche de la page de connexion |
Ligne 294: | Ligne 311: | ||
== Créer les scripts de session de lightdm == | == Créer les scripts de session de lightdm == | ||
- | Les scripts sont identifiés dans la configuration de lightdm avec les parametres | + | Les scripts sont identifiés dans la configuration de lightdm par les parametres |
- | ''' | + | * session-setup-script= |
- | session-setup-script= et session-cleanup-script= | + | * session-cleanup-script= |
- | ''' | + | |
Ils sont exécutés en tant que root à la connexion et à la déconnexion de l'utilisateur, on les créera dans le dossier /etc/lightdm/session/ | Ils sont exécutés en tant que root à la connexion et à la déconnexion de l'utilisateur, on les créera dans le dossier /etc/lightdm/session/ | ||
- | configuration de lighdm | + | configuration de lightdm |
<file config /etc/lightdm.conf> | <file config /etc/lightdm.conf> | ||
[Seat:*] | [Seat:*] | ||
Ligne 377: | Ligne 394: | ||
===== Utilisation ===== | ===== Utilisation ===== | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== configuration du pc primtux ===== | ||
- | |||
- | ==== lighdm connexion ==== | ||
- | Rappellons que les machines Primtux sont "mono-utilisateur" **1 seul utilisateur sur 1 seule machine à la fois.** | ||
- | Nous monterons donc les ressources partagées (suivant une information donnée par l'utilisateur d'appartenance à telle ou telle classe **) | ||
- | avec lightdm à la connexion de l'utilisateur. | ||
- | Pour cela Lighdm dispose de 2 paramêtres: session-setup-script et session-cleanup-script définissant des scripts exécutés par root. | ||
- | nous utilisons alors ces scripts pour monter et demonter nos partages | ||
- | [[/etc/lightdm/session/session-setup.sh]] à la connexion | ||
- | [[/etc/lightdm/session/session-cleanup.sh]] à la déconnexion | ||
- | |||
- | === Adapter l'écran de connexion de primtux === | ||
- | Primtux propose une interface de connexion simplifiée pour les enfants. | ||
- | 4 images permettent de choisir l'utilisateur parmi mini,maxi,super et administrateur (le maitre). Quelques boutons sont disponibles pour controler le PC parmi Arreter, Hiberner, Veille, Redémarrer. | ||
- | |||
- | Il manque donc une liste pour la sélection de l'appartenance de l'utilisateur à telle ou telle classe. | ||
- | Nous allons donc rajouter dans l'interface de connexion ce choix avec le sélecteur de session habituel. | ||
- | Commençons par ajouter les différentes sessions souhaitées | ||
- | |||
- | === Créer les sessions spécifiques par classe === | ||
- | il n'est prédéfini qu'une seule session "fluxbox", donc pour différencier les classes nous dupliquons simplement la session existante sous d'autres noms correspondant aux critères d'organisation (pour l'exemple j'ai choisi une différensation par niveau classe). | ||
- | en root | ||
- | copier [[/usr/share/xsessions/fluxbox.desktop]] en /usr/share/xsessions/fluxbox-cp.desktop | ||
- | copier [[/usr/share/xsessions/fluxbox.desktop]] en [[/usr/share/xsessions/fluxbox-ce1.desktop]] | ||
- | ... | ||
- | copier [[/usr/share/xsessions/fluxbox.desktop]] en [[/usr/share/xsessions/fluxbox-cm2.desktop]] | ||
- | (on pourrait imaginer une organisation avec le nom des professeurs ou tout autre choix) | ||
- | |||
- | ensuite on va modifier, pour chaque nouvelle session créée, le parametre Name=fluxbox avec le texte qui appraitra dans le sélecteur | ||
- | Name=Classe de CP pour fluxbox-cp.desktop, et ainsi de suite... | ||
- | |||
- | === Modifier l'interface de connexion === | ||
- | Nous allons maintenant rajouter dans l'interface de connexion pour ajouter la liste déroulante du choix des différentes sessions que nous venons de créer. | ||
- | La présentation de l'écran de connexion de [[LightDm]] (dénommé greeter) est lightdm-webkit-greeter. Elle est configurable à l'aide de thèmes. | ||
- | Primtux a été dessiné autour du theme pretty, nous allons donc retoucher le fichier [[/usr/share/lightdm-webkit/themes/pretty/index.html]] | ||
- | pour ajouter le "session selector" | ||
- | cf: https://askubuntu.com/questions/414344/how-to-add-a-session-type-button-to-lightdm-webkit-greeter-theme | ||
- | |||
- | <file html /usr/share/lightdm-webkit/themes/pretty/index.html> | ||
- | <html> | ||
- | <head> | ||
- | <link rel="stylesheet" href="css/dock.css" /> | ||
- | <link rel="stylesheet" href="css/greeter.css" /> | ||
- | <script type="text/javascript" src="js/jquery-1.8.0.min.js"></script> | ||
- | <script type="text/javascript" src="js/greeter.js"></script> | ||
- | |||
- | |||
- | <script type="text/javascript"> | ||
- | function show_message(text) | ||
- | { | ||
- | table = document.getElementById('message_table'); | ||
- | label = document.getElementById('message_label'); | ||
- | label.innerHTML = text; | ||
- | if (text.length > 0) | ||
- | table.style.visibility = "visible"; | ||
- | else | ||
- | table.style.visibility = "hidden"; | ||
- | } | ||
- | |||
- | loading_text = '' | ||
- | |||
- | function throbber() | ||
- | { | ||
- | loading_text += '.'; | ||
- | if (loading_text == '....') | ||
- | loading_text = '.' | ||
- | label = document.getElementById('countdown_label'); | ||
- | label.innerHTML = loading_text; | ||
- | setTimeout('throbber()', 1000); | ||
- | } | ||
- | |||
- | function authentication_complete() | ||
- | { | ||
- | if (lightdm.is_authenticated) | ||
- | { | ||
- | session_list = document.getElementById('session_list'); | ||
- | session = lightdm.sessions[session_list.selectedIndex]; | ||
- | lightdm.login (lightdm.authentication_user, session.key); | ||
- | } | ||
- | else | ||
- | show_message ("Authentication Failed"); | ||
- | |||
- | reset (); | ||
- | setTimeout('throbber()', 1000); | ||
- | } | ||
- | |||
- | |||
- | document.write('<table id="user_table" style="margin: auto;">'); | ||
- | document.write('<select id="session_list">'); | ||
- | for (i in lightdm.sessions) | ||
- | { | ||
- | session = lightdm.sessions[i]; | ||
- | if (session.key == lightdm.default_session) | ||
- | document.write('<option selected="selected" value="' + session.key + '">' + session.name + '</option>'); | ||
- | else | ||
- | document.write('<option value="' + session.key + '">' + session.name + '</option>'); | ||
- | } | ||
- | document.write('</select>'); | ||
- | document.write('</table>'); | ||
- | |||
- | </script> | ||
- | </head> | ||
- | |||
- | <body> | ||
- | <div class="dockArea"> | ||
- | <div class="dock"> | ||
- | <ul id="dockList"> | ||
- | </ul> | ||
- | </div> | ||
- | </div> | ||
- | <div id="passwordArea" class="password"> | ||
- | <table border="0" align="center"> | ||
- | <tr> | ||
- | <td><img src="img/transp.gif" width="32" height="32"/></td> | ||
- | <td><img src="img/transp.gif" width="32" height="32"/></td> | ||
- | <td><input id="passwordField" type="password" class="password"/></td> | ||
- | <td><img src="img/action_ok.png" title="Authentification" onclick="submitPassword()"/></td> | ||
- | <td><img src="img/action_cancel.png" title="Annuler" onclick="cancelAuthentication()"/></td> | ||
- | </tr> | ||
- | </table> | ||
- | </div> | ||
- | <div id="statusArea" class="status"> | ||
- | <table border="0" align="center"> | ||
- | <tr> | ||
- | <td><img src="img/status.png"/></td> | ||
- | <td><span style="font-size: 100%">Erreur</span></td> | ||
- | </tr> | ||
- | </table> | ||
- | </div> | ||
- | <div id="timerArea" class="timer"><img src="img/timer.gif"/></div> | ||
- | <div id="actionsArea" class="actions"></div> | ||
- | <div id="logArea" class="log"></div> | ||
- | </body> | ||
- | </html> | ||
- | </file> | ||
Nous retrouvons donc le sélecteur de session en haut à gauche de la page de connexion | Nous retrouvons donc le sélecteur de session en haut à gauche de la page de connexion | ||
- | {{~/shot.resized.png}} | ||
+ | ==== Petites facilités pour l'utilisateur ==== | ||
- | === Créer les scripts de session de lightdm === | + | Créer les points de montage sur chaque PC primtux |
+ | <code root> | ||
+ | mkdir /home/forum | ||
+ | chmod 777 /home/forum | ||
- | Les scripts sont identifiés dans la configuration de lightdm avec les parametres | + | mkdir /home/MaClasse |
- | ''' | + | </code> |
- | session-setup-script= et session-cleanup-script= | + | |
- | ''' | + | |
- | Ils sont exécutés en tant que root à la connexion et à la déconnexion de l'utilisateur, on les créera dans le dossier /etc/lightdm/session/ | + | |
- | configuration de lighdm | + | ajouter un dossier vide qui apparaitra dans le navigateur de fichier si le montage n'a pas réussi |
- | <file config /etc/lightdm.conf> | + | <code root> |
- | [Seat:*] | + | mkdir /home/forum/Pas_Disponible |
- | greeter-session=lightdm-gtk-greeter | + | mkdir /home/MaClasse/Pas_Fisponible |
- | greeter-hide-users=false | + | </code> |
- | user-session=fluxbox | + | |
- | #####display-setup-script=/root/45x11-custom-xrandr-settings | + | |
- | session-setup-script=/etc/lightdm/session/session-setup.sh | + | |
- | session-cleanup-script=/etc/lightdm/session/session-cleanup.sh | + | |
- | </file> | + | |
+ | Ajouter des liens symboliques dans les dossiers documents des utilisateurs | ||
+ | <code root> | ||
+ | ln -sf /home/forum /home/01-mini/Documents/forum | ||
+ | ln -sf /home/forum /home/02-maxi/Documents/forum | ||
+ | ln -sf /home/forum /home/03-super/Documents/forum | ||
+ | ln -sf /home/forum /home/administrateur/Documents/forum | ||
- | Le script recoit dans son environnement diverses variables, | + | ln -sf /home/MaClasse /home/01-mini/Documents/MaClasse |
- | + | ln -sf /home/MaClasse /home/02-maxi/Documents/MaClasse | |
- | <code config retour de la commande> | + | ln -sf /home/MaClasse /home/03-super/Documents/MaClasse |
- | DISPLAY=:0 | + | ln -sf /home/MaClasse /home/administrateur/Documents/MaClasse |
- | USER=administrateur | + | |
- | PWD=/ | + | |
- | HOME=/home/administrateur | + | |
- | SHELL=/bin/sh | + | |
- | SHLVL=1 | + | |
- | LOGNAME=administrateur | + | |
- | XAUTHORITY=/var/run/lightdm/root/:0 | + | |
- | PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games | + | |
- | _=/usr/bin/env | + | |
</code> | </code> | ||
- | mais le nom de session n'y est pas présent, il doit être récupéré dans le fichier .dmrc du répertoire HOME de l'utilisateur. | ||
- | <file config .dmrc> | ||
- | [Desktop] | ||
- | Language=fr_FR.utf8 | ||
- | Session=fluxbox-ce1 | ||
- | </file> | ||
- | On devra fournir les mots de passe des montages à réaliser dans ce script, ces mots de passe sont qui ont été définis dans le chapitre | ||
- | " configuration du serveur Samba " ci-dessus | ||
- | |||
- | <file bash /etc/lightdm/session/session-setup.sh> | ||
- | #!/bin/bash | ||
- | # session-setup.sh | ||
- | #/root/45x11-custom-xrandr-settings | ||
- | |||
- | echo $* >/root/session | ||
- | env >>/root/session | ||
- | |||
- | cat <<EOF | tee /etc/samba/.credentials/forum > /dev/null | ||
- | username=sharing | ||
- | password=tuxprof | ||
- | domain=WORKGROUP | ||
- | EOF | ||
- | mount /home/forum | ||
- | |||
- | SESSION=$(grep Session $HOME/.dmrc) | ||
- | SESSION_LIGHTDM=${SESSION#Session=} | ||
- | SESSION_USER=${SESSION_LIGHTDM##*-} | ||
- | |||
- | mount -t cifs //SRV/homes /home/MaClasse -o rw,vers=2.1,domain=WORKFLOW,user=$SESSION_USER,password=$SESSION_USER,uid=$(id -u $USER),forceuid,gid=$(id -g $USER),forcegid,file_mode=0775,dir_mode=0775 | ||
- | </file> | ||
- | |||
- | <file bash /etc/lightdm/session/session-cleanup.sh> | ||
- | #!/bin/bash | ||
- | # session-cleanup.sh | ||
- | # prls -emier test demonter dossiers partagés /home/MaClasse | ||
- | umount /home/MaClasse | ||
- | umount /home/forum | ||
- | rm /etc/samba/.credentials/* | ||
- | </file> | ||