logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:reseau:primtux-samba [01/10/2018 18:26]
Philippe Dpt35
doc:reseau:primtux-samba [30/04/2023 02:03] (Version actuelle)
arpinux lien mort : correction de la mise en forme
Ligne 1: Ligne 1:
-====== PC Primtux et serveur SAMBA ======+====== PC Primtux et serveur SAMBA (chantier)======
  
   * Objet : Partage des données avec un serveur Samba depuis des PC Primtux   * Objet : Partage des données avec un serveur Samba depuis des PC Primtux
   * Niveau requis : {{tag>​avisé}}   * Niveau requis : {{tag>​avisé}}
   * Commentaires : // assurer le montage automatique de ressources partagées depuis un serveur local samba lors de la connexion de l'​utilisateur suivant le critère "​MaClasse"​. //   * Commentaires : // assurer le montage automatique de ressources partagées depuis un serveur local samba lors de la connexion de l'​utilisateur suivant le critère "​MaClasse"​. //
 +  * Suivi : {{tag>​en-chantier à-actualiser}}
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
 +  * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​id=22499| Lien vers le forum df concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
 ===== Introduction ===== ===== Introduction =====
 +
 ==== objectif ==== ==== objectif ====
- Assurer le montage de ressources partagées depuis un serveur local samba lors de la connexion de l'​utilisateur suivant le critère "​MaClasse"​.+ 
 +Assurer le montage de ressources partagées depuis un serveur local [[doc:​reseau:​samba|samba]] ​lors de la connexion de l'​utilisateur suivant le critère "​MaClasse"​. 
 ==== contraintes ==== ==== contraintes ====
- Rappelons qu'à l'​opposé d'une distribution du type Debian-EDU, SkoleLInux, seuls 4 utilisateurs (on dira plutôt des profils) sont définis. + 
- Cette distribution propose la mise à disposition d'​applications éducatives libres au sein d'une classe, chaque machine ​est indépendante. +<note tip>Rappelons qu'à l'​opposé d'une distribution du type Debian-EDU, SkoleLInux, seuls 4 utilisateurs (on dira plutôt des profils) sont définis.</​note>​ 
- Dans une école, les ordinateurs peuvent même être à la disposition de plusieurs classes.  +Cette distribution propose la mise à disposition d'​applications éducatives libres au sein d'une classe, chaque machine ​restant ​indépendante. 
- Sans atteindre le niveau individuel, comment partager exercices, documents.... entre élèves et professeur d'une classe.+ 
 +Dans une école, les ordinateurs peuvent même être à la disposition de plusieurs classes. ​\\ 
 +Sans atteindre le niveau individuel, comment partager exercices, documents.... entre élèves et professeur d'une classe. 
 ==== principe ==== ==== principe ====
- lightdm assure la connexion d'un profil utilisateur de PrimTux sans mot de passe(mini, maxi, super), et avec identification mot de passe pour l'​administrateur. ​ 
- Adapté à PrimTux, lightdm utilise un greeter spécifique,​ lightdm-webkit-greeter 
- (icônes pour chacun des utilisateurs standard mini,​maxi,​super,​administrateur,​ avec image d'​arrière-plan). 
  
- Cependant nous souhaitons avoir, dès la connexion, l'​accès à des dossiers partagés Samba suivant un critère ​d'appartenance à une classe. +lightdm assure ​la connexion d'un profil utilisateur de PrimTux ​sans mot de passe)(mini,​ maxi, super)) avec identification mot de passe pour l'​administrateur.
- Ces partages doivent pouvoir être utilisés sous PrimTux ​mais aussi sous Windows.+
    
- En effetPrimTux a simplifié l'​utilisation et la configuration ​des applications suivant des critères d'âgemais nous souhaitons qu'​enseignants et élèves puissent partager des données suivant leur appartenance à une classe. +Adapté à PrimTuxlightdm utilise un greeter spécifique,​ lightdm-webkit-greeter \\ 
- Pour Windowsseuls les enseignants auront besoin ​d'utiliser telle ou telle ressource. Ils devront utiliser les fonctionnalités de base.+(icônes pour chacun ​des utilisateurs standard mini,maxi,super, administrateuravec image d'arrière-plan).
  
-Nous avons donc défini 2 groupes de partage: +Cependant, dès la connexion, nous souhaitons avoir l'​accès à des dossiers partagés Samba suivant un critère d'​appartenance à une classe. 
-  - partage communtoutes données communes sans droits particuliers,​ l'​objectif par exemple étant la récupération de documents scannés depuis le copieur de l'​école. Ce partage est identifié "​**forum**"​. +<note tip>Ces partages doivent pouvoir être utilisés sous PrimTux mais aussi sous Windows.</​note>​ 
-  - partage pour une classeprofesseur et élèves d'une classe déposeront ou récupéreront dans ce partage les documents (exercices, documents..) de leur classe. Ce partage est identifié "​**MaClasse**"​.+  
 +En effet, PrimTux a simplifié l'​utilisation et la configuration des applications suivant des critères d'​âge,​ mais nous souhaitons qu'​enseignants et élèves puissent partager des données suivant leur appartenance à une classe. 
 + 
 +Pour Windows, seuls les enseignants auront besoin d'​utiliser telle ou telle ressource. Ils devront utiliser les fonctionnalités de base. 
 + 
 +Nous avons donc défini 2 groupes de partage : 
 +  - partage commun ​toutes données communes sans droits particuliers,​ l'​objectif par exemple étant la récupération de documents scannés depuis le copieur de l'​école. ​\\ Ce partage est identifié "​**forum**"​. 
 +  - partage pour une classe ​professeur et élèves d'une classe déposeront ou récupéreront dans ce partage les documents (exercices, documents..) de leur classe. ​\\ Ce partage est identifié "​**MaClasse**"​.
  
 Afin de simplifier l'​accès à ces ressources, nous monterons dans le système de fichiers les partages concernés par CIFS dès la connexion. Afin de simplifier l'​accès à ces ressources, nous monterons dans le système de fichiers les partages concernés par CIFS dès la connexion.
-Les partages seront démontés automatiquement à la déconnexion.+<note important>​Les partages seront démontés automatiquement à la déconnexion.</​note>​ 
 + 
 +  - Le montage du **forum** sera donc prédéfini dans le fichier [[doc:​systeme:​fstab|/​etc/​fstab]] et monté dès la connexion de l'​utilisateur. 
 +  - Le montage de **MaClasse** sera lui réalisé par un <code root>​mount -t cifs</​code>​ utilisé par l'​utilisateur root au moment de la connexion de l'​utilisateur.
  
-Le montage du **forum** sera donc prédéfini dans le fichier [[/​etc/​fstab]] mais seulement monté à la connexion de l'​utilisateur. 
-Le montage de **MaClasse** sera réalisé par un mount -t cifs par l'​utilisateur root au moment de la connexion de l'​utilisateur. 
  
  
  
 ===== Installation ===== ===== Installation =====
 +
 ==== Définition des partages ==== ==== Définition des partages ====
  
-on va donc utiliser les 2 types de partage: +On va donc utiliser les 2 types de partage: 
-  * **[forum]** partage d'un dossier particulier du serveur, le nom est donné dans le fichier de configuration sur le serveur+  * **[forum]** partage d'un dossier particulier du serveur, le nom est donné dans le fichier de configuration sur le serveur.
   * **[homes]** partage le dossier HOME de l'​utilisateur   * **[homes]** partage le dossier HOME de l'​utilisateur
-<​note>​ATTENTION,​ c'est le dossier home d'un utilisateur du serveur, non pas de la machine cliente.+<​note ​important>**ATTENTION**, c'est le dossier home d'un utilisateur du serveur, non pas de la machine cliente.</​note>​
  
 Ce dossier sera donc celui d'une classe. Ce dossier sera donc celui d'une classe.
  
-Nous identifierons toutes les classes de l'​école et les désignerons comme étant des utilisateurs du serveur. Par exemple : cp, ce1, ce2, ou même Nicole-maitresse-cm2 peu importe, désigner un nom de classe sera plus "//​portable//"​.+Nous identifierons toutes les classes de l'​école et les désignerons comme étant des utilisateurs du serveur. ​\\ Par exemple : cp, ce1, ce2, ou même Nicole-maitresse-cm2 peu importe, désigner un nom de classe sera plus "//​portable//"​.
  
-Pour être plus visible au niveau de la fenêtre de session, on rajoute une session publique qui sera la session par défaut.</​note>​+Pour être plus visible au niveau de la fenêtre de session, on rajoute une session publique qui sera la session par défaut.
      
  
-Donc nous décrirons le partage **forum** à monter sur le système de fichiers des machines PrimTux dans /etc/fstab+Donc nous décrirons ​ainsi le partage **forum** à monter sur le système de fichiers des machines PrimTux dans /etc/fstab
 <file config /​etc/​fstab>​ <file config /​etc/​fstab>​
 .. ..
Ligne 74: Ligne 86:
  
 </​code>​ </​code>​
 +
 ==== configuration du serveur Samba ==== ==== configuration du serveur Samba ====
  
Ligne 147: Ligne 160:
 Retype new SMB password:</​code>​ Retype new SMB password:</​code>​
  
-Notez ce mot de passe, il devra être reporté dans [[/​etc/​lightdm/​session/​session-setup.sh]] des postes PrimTux.+Notez ce mot de passe, il devra être reporté dans '' ​/​etc/​lightdm/​session/​session-setup.sh'' ​des postes PrimTux.
  
 <note important>​**Attention** le script prend en guise de mot de passe le nom de la classe, penser à adapter le script si vous choisissez une autre solution </​note>​ <note important>​**Attention** le script prend en guise de mot de passe le nom de la classe, penser à adapter le script si vous choisissez une autre solution </​note>​
Ligne 155: Ligne 168:
 === lightdm connexion === === lightdm connexion ===
  
-Rappelons que les machines PrimTux sont "​mono-utilisateur",​ **1 seul utilisateur sur 1 seule machine à la fois**.+<note important>​Rappelons que les machines PrimTux sont "​mono-utilisateur",​ **1 seul utilisateur sur 1 seule machine à la fois**.</​note>​
  
 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.
Ligne 163: Ligne 176:
   * session-cleanup-script   * session-cleanup-script
  
-Nous utilisons alors ces scripts pour monter et démonter nos partages : +Nous utilisons alors ces scripts pour monter et démonter nos partages :\\ 
-[[/​etc/​lightdm/​session/​session-setup.sh]] à la connexion +''​/​etc/​lightdm/​session/​session-setup.sh'' ​à la connexion ​\\ 
-[[/​etc/​lightdm/​session/​session-cleanup.sh]] à la déconnexion+''​/​etc/​lightdm/​session/​session-cleanup.sh'' ​à la déconnexion ​\\
  
 == 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 : 4 images permettent de choisir l'​utilisateur parmi mini, maxi, super et administrateur (le maître), et quelques boutons ​ sont disponibles pour contrôler le PC parmi "​Arrêter,​ Hiberner, Veille, Redémarrer"​. 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 maître), 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 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",​ + 
-  +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érenciation par niveau classe).
-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érenciation par niveau classe).+
  
 <code root> <code root>
Ligne 187: Ligne 200:
 cp /​usr/​share/​xsessions/​fluxbox.desktop /​usr/​share/​xsessions/​fluxbox-bonjour.desktop cp /​usr/​share/​xsessions/​fluxbox.desktop /​usr/​share/​xsessions/​fluxbox-bonjour.desktop
 </​code>​ </​code>​
-(on pourrait imaginer une organisation avec le nom des professeurs ou tout autre choix)+<note tip>(On pourrait imaginer une organisation avec le nom des professeurs ou tout autre choix).</​note>​ 
 + 
 +<note tip>Pour éviter d'​avoir à recopier et modifier de multiples fois les chemins et noms des fichiers, avec les risques d'​erreurs que cela comporte, on peut effectuer cette opération de manière plus concise grâce à l'​expansion d'​accolades : <code root>for f in /​usr/​share/​xsessions/​fluxbox-{cp,​ce1,​cm2,​bonjour}.desktop ; do cp /​usr/​share/​xsessions/​fluxbox.desktop $f ; done</​code>​ 
 +</​note>​
  
-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...+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...
  
 == Modifier l'​interface de connexion == == Modifier l'​interface de connexion ==
Ligne 195: Ligne 211:
 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. 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.
  
-La présentation de l'​écran de connexion de [[LightDm]] (dénommé greeter) est lightdm-webkit-greeter. ​+La présentation de l'​écran de connexion de [[:​doc:​environnements:​x11:​lightdm|LightDm]] (dénommé greeter) est lightdm-webkit-greeter. ​
  
 Elle est configurable à l'aide de thèmes. Elle est configurable à l'aide de thèmes.
  
-PrimTux a été dessinée autour du thème pretty, nous allons donc retoucher le fichier ​[[/​usr/​share/​lightdm-webkit/​themes/​pretty/​index.html]] pour ajouter le "​session selector"​+PrimTux a été dessinée 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> ​ <​note>​cf:​ https://​askubuntu.com/​questions/​414344/​how-to-add-a-session-type-button-to-lightdm-webkit-greeter-theme</​note> ​
  
Ligne 307: Ligne 323:
 == 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 par les parametres+Les scripts sont identifiés dans la configuration de lightdm par les paramètres :
   * session-setup-script= ​   * session-setup-script= ​
   * 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 lightdm ​+Configuration ​de lightdm ​
 <file config /​etc/​lightdm.conf>​ <file config /​etc/​lightdm.conf>​
 [Seat:*] [Seat:*]
Ligne 327: Ligne 344:
 Le script reçoit, dans son environnement,​ diverses variables :  Le script reçoit, dans son environnement,​ diverses variables : 
  
-<code config ​retour de la commande>+<code config>
 DISPLAY=:0 DISPLAY=:0
 USER=administrateur USER=administrateur
Ligne 341: Ligne 358:
  
  
-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+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> <file config .dmrc>
 [Desktop] [Desktop]
Ligne 350: Ligne 366:
  
  
-On devra fournir les mots de passe des montages à réaliser dans ce script, ces mots de passe sont ceux qui ont été définis dans le chapitre +On devra fournir les mots de passe des montages à réaliser dans ce script, ces mots de passe sont ceux qui ont été définis dans le chapitre ​: \\ 
-" configuration du serveur Samba " ci-dessus +" configuration du serveur Samba " ci-dessus.
- +
- +
 <file bash /​etc/​lightdm/​session/​session-setup.sh>​ <file bash /​etc/​lightdm/​session/​session-setup.sh>​
 #!/bin/bash #!/bin/bash
Ligne 374: Ligne 387:
 SESSION_USER=${SESSION_LIGHTDM##​*-} 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+# prévoir une test de connectivité,​ sinon il sera impossible de démarrer la session en cas d'​erreur  
 +ping -W 2 -c 2 srv.ecole.pdc >/​dev/​null 
 +if [ $? -eq 0 ]; then   
 +   mount /​home/​forum 
 +   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 
 +else 
 +   echo "no network"​ >>/​root/​session 
 +fi 
 +# ignore les erreurs de réseau 
 +exit 0  
 + 
 </​file>​ </​file>​
  
Ligne 392: Ligne 416:
  
 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
-[[https://debian-facile.org/​images/​file-R08d98c388dfc22043220575f982e4240]]+ 
 +{{/file-Rdd250454507c6931c0e755ac0ba8f905.png?450}} 
  
  
 Il suffit à l'​utilisateur de choisir la session correspondant à sa classe, puis de se connecter. Il suffit à l'​utilisateur de choisir la session correspondant à sa classe, puis de se connecter.
  
-On peut prédéfinir un choix dans le fichier /​etc/​lightdm.conf (le nom du fichier de session dans /​usr/​share/​xsessions/​ sans l'​extension .desktop)+On peut prédéfinir un choix dans le fichier /​etc/​lightdm.conf (le nom du fichier de session dans /​usr/​share/​xsessions/​ sans l'​extension .desktop).
 <file config /​etc/​lightdm.conf>​ <file config /​etc/​lightdm.conf>​
 [Seat:*] [Seat:*]
Ligne 407: Ligne 433:
 ==== Petites facilités pour l'​utilisateur ==== ==== Petites facilités pour l'​utilisateur ====
  
-Créer les points de montage sur chaque PC PrimTux+Créer les points de montage sur chaque PC PrimTux ​:
 <code root> <code root>
 mkdir /home/forum mkdir /home/forum
Ligne 415: Ligne 441:
 </​code>​ </​code>​
  
-Ajouter un dossier vide qui apparaîtra dans le navigateur de fichiers si le montage n'a pas réussi+Ajouter un dossier vide qui apparaîtra dans le navigateur de fichiers si le montage n'a pas réussi ​:
 <code root> <code root>
 mkdir /​home/​forum/​Pas_Disponible mkdir /​home/​forum/​Pas_Disponible
Ligne 421: Ligne 447:
 </​code>  ​ </​code>  ​
  
-Ajouter des liens symboliques dans les dossiers documents des utilisateurs+Ajouter des liens symboliques dans les dossiers documents des utilisateurs ​:
 <code root> <code root>
 ln -sf /home/forum /​home/​01-mini/​Documents/​forum ln -sf /home/forum /​home/​01-mini/​Documents/​forum
Ligne 434: Ligne 460:
 </​code>​ </​code>​
  
-==== Comportement suppression ​de documents dans le forum ==== +==== Suppression ​de documents dans le forum ==== 
-<note warning>​Par défaut, la suppression d'un fichier ​dans le navigateur de fichiers **PCManFM** ​opère une mise à la Corbeille ​du fichier.+{{/​file-R241b58c481aa03a2fe6136058c170336.png?​450}} 
 + 
 +<note warning>​Par défaut, la suppression d'un fichier ​depuis ​le navigateur de fichiers **PCManFM**, consiste à déplacer ce fichier ​à la Corbeille
 + 
 + 
 +Ainsi lors de la suppression d'​un ​fichier, PCManFM tente de créer un dossier .Trash-xxxx dans le dossier partagé pour y déplacer le fichier concerné.  
 + 
 +Bien qu'il soit tout à fait possible de créer un tel dossier, PCManFM n'​arrive pas à le créer ????? --BUG--</​note>​.
  
-Cependant PCManFM n'​arrive pas à créer un dossier .Trash --BUG--</​note>​ 
  
-Il faut donc modifier le comportement en effectuant une suppression immédiate  +Pour éviter cet écueil, il faut donc modifier le comportement en effectuant une suppression immédiate  
-depuis menu --> Édition --> Préférences+depuis menu --> Édition --> Préférences.
  
-décocher : [ ] Mettre les fichiers supprimés à la "​Corbeille"​ au lieu de les effacer du disque ​+décocher : [ ] Mettre les fichiers supprimés à la "​Corbeille"​ au lieu de les effacer du disque.
  
 +{{/​file-Rb5497a615b39b5fc5ae09c0c38c55000.png?​450}}
  
  
doc/reseau/primtux-samba.1538411173.txt.gz · Dernière modification: 01/10/2018 18:26 par Philippe Dpt35

Pied de page des forums

Propulsé par FluxBB