Forum Programmation.shell Création simultanée et en lot d'utilisateurs et utilisateurs samba.

Posté par . Licence CC by-sa
1
1
oct.
2016

Salut et fraternité à toutes et à tous,
je suis confronté à un problème et je ne m'en sors pas.
Je vous explique:
- je suis le gestionnaire du réseau d'un beau collège. Je suis aussi prof à plein temps.
- sur ce réseau, 70 postes sont destinés à l'usage des élèves.
- 50 postes tournent avec Mint et 20 avec W$10.
- une pfsense et un SLIS protègent les accès à internet.
- pas de domaine, pas de ldap, rien !

- sur chaque poste est installé une solution de type "Deep Freeze" (Ofris-en pour être précis).
- le réseau est en gigabit.
- l'adressage est en 10 (10.1.1.1 , 10.1.1.2 etc …) je suis conscient qu'un adressage en 192.168 suffirait mais c'est ainsi.
- pour que les élèves puissent sauvegarder leur travail, j'ai développé un "cloud" en php-Mysql (UL/DL depuis un navigateur).
Un morceau de bravoure pour quelqu'un comme moi !

- un serveur dell T420, en raid 1, héberge ledit "cloud" (Debian + Nginx + php + Mysql + samba + sauvegarde + réplication des bases etc …)
- tout fonctionne très bien et je suis content. Deux années d'apprentissage et de travail bien investies. J'ai appris !
- oui mais …
- les élèves ont du mal avec la "philosophie" du cloud : trop de manipulations à leur goût (se loguer, parcourir, UL, se déloguer).
- nous avons beau leur expliquer que sur Dropbox/google drive/one etc c'est la même chose … ils ont du mal.
- l'alternative pour leur proposer du glisser/déposer est d'utiliser SAMBA.
Cela fonctionne très bien, pas de problème, ni sous Mint ni sous Windows (contrairement au FTP, piste abandonnée à cause de windows).

J'ai fait un essai avec 5 utilisateurs créés à la main sur le serveur, c'est impeccable !
- oui mais …
- J'ai 400 élèves et je suis seul à gérer le réseau !

Alors je me permets de demander si quelqu'un(e) aurait le savoir et la gentillesse de créer un petit script qui me permettrait
de faire la manipulation suivante sous linux:

1: sachant que j'ai sur le bureau un fichier texte nommé "liste" (ou "liste.txt" si c'est nécessaire…)
2: ce fichier "liste" se présente sous la forme identifiant et mot de passe, comme ceci:
1 4587
2 5412
3 7458
3: le script crérait, pour chaque identifiant et avec le mot de passe fourni, l'utilisateur et l'utilisateur samba.

Ce qui, au final, en classe donnerait le tableau suivant: l'élève Tartempion (dont l'identifiant est 125 et le mot de passe 5896) accède à son partage SAMBA et peut faire du glisser/déposer de son travail.

Vu que ce n'est pas le style de la maison, je suis douloureusement conscient de l'aspect "fais le boulôt à ma place" de ma demande.
Me permettrez-vous juste de vous signaler l'existence du site d'aide que je maintiens depuis que j'ai appris le php: www.2cvc.net.
J'ai la faiblesse de croire que c'est une manière de rendre aux autres ce que ceux-ci m'apportent.

Bien à vous,

Omer

  • # Script

    Posté par (page perso) . Évalué à 3.

    Il existe plusieurs façons de gérer cela, mais il faut bien sûr passer par un script.

    Point important à retenir : créer un utilisateur sous Samba requiert de créer un compte système en premier lieu (ou d'avoir un annuaire LDAP pour l'authentification, mais autant commencer simplement).

    Voici quelques pistes pour ce qui est de la création des comptes système : https://www.ellendhel.net/article.php?ref=2016+06+20-0

    Pour la création des comptes Samba les choses sont un peu plus simple, voici un squelette de script :

    # lecture du fichier 'liste'
    /bin/cat liste |
    
    # lecture ligne a ligne
    while
       read prenom nom identifiant mdp
    do
       echo -e "$mdp\n$mdp\n" | /usr/bin/smbpasswd -s -a $identifiant
    done
    

    Cela implique que les valeurs soient lues dans un certain ordre, qui ne correspond pas à celui utilisé dans l'article de blog, mais cela ne devrait pas poser de souci à adapter.

    • [^] # Re: Script

      Posté par . Évalué à 1.

      Merci beaucoup pour votre réponse. C'est très gentil.
      Je vais potasser ces informations et faire des essais avec une machine virtuelle.
      Je vous tiens au courant de mes progrès.
      :-)

      • [^] # Re: Script

        Posté par . Évalué à 2.

        Bonjour,
        voici les derniers développements:

        j'ai bien créé 10 comptes utilisateurs avec la commande newusers.
        Tout s'est bien passé. Mes utilisateurs apparaissent dans la liste des utilisateurs.

        Pour ce faire, j'ai mis ceci dans un fichier texte:

        E1:1101:1001:1100:E1:/home/E1:/bin/bash
        E2:1102:1002:1100:E2:/home/E2:/bin/bash
        E3:1103:1003:1100:E3:/home/E3:/bin/bash
        E4:1104:1004:1100:E4:/home/E4:/bin/bash
        E5:1105:1005:1100:E5:/home/E5:/bin/bash
        E6:1106:1006:1100:E6:/home/E6:/bin/bash
        E7:1107:1007:1100:E7:/home/E7:/bin/bash
        E8:1108:1008:1100:E8:/home/E8:/bin/bash
        E9:1109:1009:1100:E9:/home/E9:/bin/bash
        E10:1110:1010:1100:E10:/home/E10:/bin/bash

        En root, j'ai lancé "newusers /home/seb/Bureau/liste.csv"
        Succès !

        Ensuite, j'ai mis ceci dans un autre fichier texte nommé liste2.csv:

        Elève 1 E1 1101
        Elève 2 E2 1102
        Elève 3 E3 1103
        Elève 4 E4 1104
        Elève 5 E5 1105
        Elève 6 E6 1106
        Elève 7 E7 1107
        Elève 8 E8 1108
        Elève 9 E9 1109
        Elève 10 E10 1110

        Puis j'ai pris le script que j'ai mis dans un fichier texte script.txt

        lecture du fichier 'liste2.csv'

        /bin/cat liste |

        lecture ligne à ligne

        while
        read prenom nom identifiant mdp
        do
        echo -e "$mdp\n$mdp\n" | /usr/bin/smbpasswd -s -a
        $identifiant
        done

        Pour finir, j'ai changé le nom de script.txt en script.sh et dans les propriétés, j'ai coché "Autoriser l'exécution du fichier comme un programme."

        Je suis passé en root dans un terminal, j'ai fait un cd pour arriver dans le dossier où se trouvent script.sh ET liste2.csv.
        J'ai tapé script.sh et … il ne s'est rien passé.

        J'ai bien peur d'avoir raté quelque chose mais je ne vois pas quoi.

        Une idée ? :-)

        • [^] # PATH

          Posté par . Évalué à 3.

          Essaie avec ./script.sh

          • [^] # Re: PATH

            Posté par . Évalué à 1.

            Bien, je vais essayer dès que je serai devant ma machine ce soir. Merci pour le conseil, c'est très gentil.

  • # glisser déposer

    Posté par (page perso) . Évalué à 1.

    Si ton seul but c'est d'avoir du glisser/déposer, tu peux très bien faire ca en HTML/javascript

    • [^] # Re: glisser déposer

      Posté par . Évalué à 1.

      C'est très vrai, je me souviens que j'ai même vu un exemple fonctionnel en HTML5 mais uniquement dans le sens UL et pas DL.
      C'est une piste que je garde sous le coude et que j'utiliserai en dernier recours. Merci pour l'idée en tous cas.

  • # le SLIS en 2007 le faisait

    Posté par . Évalué à 2.

    • une pfsense et un SLIS protègent les accès à internet.
    • pas de domaine, pas de ldap, rien !

    c'est dommage parce qu'en 2007 le SLIS etait justement là pour te fournir un serveur samba/domaine ldap permettant de brancher tous tes postes dessus, de gerer les utilisateurs, les documents de ceux-ci, etc.

    et comme c'est prevu pour gerer tout ca, ca m'etonnerait qu'il n'y ait pas un module d'import de classes/eleves/prof pour le debut d'année

    tu es sur que le SLIS en 2016 ne fait pas tout ca deja ?
    prendre contact avec le TICE de l'academie te permettra d'en savoir plus sur le fonctionnement du SLIS,
    1°) il sera heureux de voir quelqu'un s'impliquer
    2°) il sait qu'il aura un contact avec des competences sur place en cas de besoin.

Suivre le flux des commentaires

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