diff --git a/SOURCES/Lalis.desktop b/SOURCES/Lalis.desktop new file mode 100644 index 0000000..760c7b9 --- /dev/null +++ b/SOURCES/Lalis.desktop @@ -0,0 +1,20 @@ +[Desktop Entry] +Comment[fr_FR]= +Comment= +Exec=/usr/bin/lalistunnel +GenericName[fr_FR]= +GenericName= +Icon=/usr/share/icons/hardware_configuration_section.png +MimeType= +Name[fr_FR]=LALIS +Name=LALIS +Path= +StartupNotify=true +Terminal=true +TerminalOptions=\s--noclose +Type=Application +X-DBUS-ServiceName= +X-DBUS-StartupType=none +X-KDE-RunOnDiscreteGpu=false +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/SOURCES/RPM-GPG-KEY-Lalis b/SOURCES/RPM-GPG-KEY-Lalis new file mode 100644 index 0000000..dceaa62 --- /dev/null +++ b/SOURCES/RPM-GPG-KEY-Lalis @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=nRMk +-----END PGP PUBLIC KEY BLOCK----- diff --git a/SOURCES/checklist.txt b/SOURCES/checklist.txt new file mode 100644 index 0000000..1ce0153 --- /dev/null +++ b/SOURCES/checklist.txt @@ -0,0 +1,34 @@ +Les différentes options sont OK, HS (non fonctionnel), NT (présent mais non testé), vide (non disponible) +Ajouter à la main les composants non listés ici. + +touchpad : +trackpad : +bouton gauche haut : +bouton droit haut : +bouton gauche bas : +bouton droit bas : + +Prises USB 2 : +Prises USB 3 : +e-sata : + + +audio intégré +jack audio out : +jack audio in : +Jack micro : + +VGA : +HDMI : +mini-HDMI : +display port : + +bluetooth : +Wifi : + +lecteur DVD : +lecteur d'empreinte digitale : + +port firewire : +port série : +SD_card : diff --git a/SOURCES/identMM.pl b/SOURCES/identMM.pl new file mode 100755 index 0000000..4f6931e --- /dev/null +++ b/SOURCES/identMM.pl @@ -0,0 +1,474 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use Tk; + +#********** INITIALISATION DE LA GENERATION FICHIER CHECKLIST ********* +#my $CheckFile="/home/lalis/Documents/checklist.txt"; +my $CheckFile="/usr/share/lalis/checklist.txt"; +my $PathFicout="/usr/share/lalis/"; + +#************* INITIALISATION DES INFORMATIONS GENERALES (LSHW) **************** +# copie de la commande dans un tableau pour lshw +my @LshwTab=`lshw`; +# Extraction des champs relatifs aux item +my @ChampsLshw=("description|produit|fabriquant|numéro", # champs Identification ORDINATEUR + "description|produit|fabriquant|version",# champs Identification CARTE MERE + "description|fabriquant|version",# champs Identification BIOS + "description|produit|bits|configuration",# champs Identification CPU + "description|produit|fabriquant", # champs Identification CARTE GRAPHIQUE + "description|produit|fabriquant|capacité",# champs Identification RESEAU + "description|produit|fabriquant",# champs Identification RESEAU + "produit|fabriquant|capacité|configuration"# champs Identification BATTERIE + ); +my @LshwTitres=("\n########## Identification ORDINATEUR ##########\n", + "\n########## Identification CARTE MERE ##########\n", + "\n########## Identification BIOS #########\n", + "\n########## Identification CPU ##########\n", + "\n########## Identification CARTE GRAPHIQUE ##########\n", + "\n########## Identification RESEAU ##########\n", + "\n########## Identification BATTERIE ##########\n"); +# Descripteur de l'item ordinateur +my @DescOrdi=("0", # titre du chapitre general (@LshwTitres) + "0", # champs (@ChampsLshw) de donnees à extraire + "localhost", # debut du bloc a extraire + "\\*\\-" # fin du bloc a extraire + ); +# Descripteur de l'item carte mère +my @DescCM=("1", # titre du chapitre general (@LshwTitres) + "1", # champs (@ChampsLshw) de donnees à extraire + "\\*\\-core", # debut du bloc a extraire + "\\*\\-" # fin du bloc a extraire + ); +# Descripteur de l'item BIOS +my @DescBios=("2", # titre du chapitre general (@LshwTitres) + "2", # champs (@ChampsLshw) de donnees à extraire + "\\*\\-firmware", # debut du bloc a extraire + "\\*\\-" # fin du bloc a extraire + ); +# Descripteur de l'item CPU +my @DescCPU=("3", # titre du chapitre general (@LshwTitres) + "3", # champs (@ChampsLshw) de donnees à extraire + "\\*\\-cpu", # debut du bloc a extraire + "\\*\\-" # fin du bloc a extraire + ); +# Descripteur de l'item Affichage +my @DescDisp=("4", # titre du chapitre general (@LshwTitres) + "4", # champs (@ChampsLshw) de donnees à extraire + "\\*\\-display", # debut du bloc a extraire + "\\*\\-" # fin du bloc a extraire + ); +# Descripteur de l'item reseau +my @DescNet=("5", # titre du chapitre general (@LshwTitres) + "5", # champs (@ChampsLshw) de donnees à extraire + "\\*\\-network", # debut du bloc a extraire + "\\*\\-" # fin du b loc a extraire + ); +# Descripteur de l'item battery +my @DescBat=("6", # titre du chapitre general (@LshwTitres) + "7", # champs (@ChampsLshw) de donnees à extraire + "\\*\\-battery", # debut du bloc a extraire + "\\*\\-" # fin du bloc a extraire + ); + +my @RefItems=("PC","CM","BIOS","CPU","DISP","NET","BAT"); +#my @RefItems=("PC","CM","BIOS"); + +my @temp; +my @ident; +my $flag=0; + +my $titre; +my $start; +my $end; +my $data; + +#********** INITIALISATION DES INFORMATIONS USB (lsusb) ********* + + +#********** INITIALISATION DES INFORMATIONS MEMOIRES (DMIDECODE) ********* +# copie de la commande dans un tableau pour dmidecode +my @tabdmidecode=`dmidecode -t memory`; +my @ChampsMem=("Data|Size|Bank Locator:|Type:|Speed:|Manufacturer"); +my @MemTitres=("\n########## Identification MEMOIRE ##########\n"); +my @DescMem=("0", # titre du chapitre general (@SmartTitres) + "0", # champs (@ChampsMem) de donnees à extraire + "Memory Device", # debut du bloc a extraire + "Part" # fin du bloc a extraire + ); + + +#*********** INITIALISATION DES INFORMATIONS DISK (SMARTCTL) ************** +my @champsdisk=("Family|Model:|Serial|Capacity|Form|SATA"); +my @ListDisk=`ls /dev/sd?`; +my @DescDisk=("0", # titre du chapitre general (@SmartTitres) + "0" # champs (@champsdisk) de donnees à extraire + ); +my @DiskTitres=("\n########## Identification DISK ##########\n"); + +my $D; +my @tabsmart; +my @temp2; +my $PathD; +my $nb=0; + +#********** INITIALISATION DE LA GENERATION FICHIER RESULTAT ********* +my @RefMachine=("PC", "CM"); +my @ChampsRef=("numéro", # champs Identification ORDINATEUR + "numéro" # champs Identification CARTE MERE + ); + +# Descripteur de l'item ordinateur +my @DescOrdi2=("0", # titre du chapitre general (@LshwTitres) + "0", # chamextraireps (@ChampsLshw) de donnees à extraire + "localhost", # debut du bloc a extraire + "\\*\\-" # fin du bloc a extraire + ); +# Descripteur de l'item carte mère +my @DescCM2=("1", # titre du chapitre general (@LshwTitres) + "1", # champs (@ChampsLshw) de donnees à extraire + "\\*\\-core", # debut du bloc a extraire + "\\*\\-" # fin du bloc a extraire + ); +my @FicTab=@LshwTab; +my $RefPC=undef; +my $RefCM=undef; +my $NomFic=undef; +my $A; +my $item; + +#********** INITIALISATION TRAITEMENT CODE REOUR RSYNC ********* +my %CodeRetourRsync = (0 => "Succes", + 1 => "Erreur de syntaxe ou d'utilisation", + 2 => "Incompatibilite de protocole", + 3 => "Erreurs lors de la selection des fichiers et des repertoires d'entree/sortie", + 4 => "Action non supportee", + 5 => "Erreur lors du démarrage du protocole client-serveur", + 6 => "Demon incapable d'ecrire dans le fichier de log", + 10 => "Erreur dans la socket E/S", + 11 => "Erreur d'E/S fichier", + 12 => "Erreur dans le flux de donnée du protocole rsync", + 13 => "Erreur avec les diagnostics du programme", + 14 => "Erreur dans le code IPC", + 20 => "SIGUSR1 ou SIGINT reçu ", + 21 => "Une erreur retournee par waitpid() ", + 22 => "Erreur lors de l'allocation des tampons de mémoire principaux", + 23 => "Transfert partiel dut à une erreur", + 24 => "Transfert partiel dut à la disparition d'un fichier source", + 25 => "La limite --max-delete a été atteinte", + 30 => "Dépassement du temps d'attente maximal lors d'envoi/reception de donnees"); + +#********** INITIALISATION DE L'AFFICHAGE POPUP DE FIN DE TRAITEMENT ********* +my @affich; + +######################################################################### +# PROGRAMME RENSEIGNEMENT DU FICHIER CHECKLIST +######################################################################### +# Renseignement du fichier checklist.txt de l'ordinateur par l'opérateur +system("su -c 'kwrite $CheckFile' lalis"); + +######################################################################### +# PROGRAMME DES INFORMATIONS GENERALES (LSHW) +######################################################################### +foreach (@RefItems) { # foreach @RefItems + # Pour chaque item a afficher + if ($_ eq "PC"){($titre, $data, $start, $end)=@DescOrdi;} + if ($_ eq "CM"){($titre, $data, $start, $end)=@DescCM;} + if ($_ eq "BIOS"){($titre, $data, $start, $end)=@DescBios;} + if ($_ eq "CPU"){($titre, $data, $start, $end)=@DescCPU;} + if ($_ eq "DISP"){($titre, $data, $start, $end)=@DescDisp;} + if ($_ eq "NET"){($titre, $data, $start, $end)=@DescNet;} + if ($_ eq "BAT"){($titre, $data, $start, $end)=@DescBat;} + #print("$end\n"); + + $flag=0; + foreach (@LshwTab) { # foreach @LshwTab + # vidage buffer temporaire + @temp=(); + # extraction d'un bloc memoire dans @temp + if ( $flag==0 ){ # attente debut du bloc vu + if ( m/$start/ ){ # debut du bloc vu + s/$_//; + $flag=1; + push(@ident,$LshwTitres[$titre]); + } + }else{ # attente fin du bloc vu + push(@temp,$_); + if ( m/$end/ ){ # fin du bloc vu + $flag=0; + } + } + # Extraction des champs d'un bloc memoire contenu dans @temp + foreach (@temp) { # foreach temp + if ( m/$ChampsLshw[$data]/ ){ + s/\s+/ /; + push(@ident,$_); + } + } # fin boucle foreach temp + } # fin boucle foreach @LshwTab +} # fin boucle foreach @LshwTitres + + +######################################################################### +# PROGRAMME DES INFORMATIONS GENERALES (LSUSB) +######################################################################### + # vidage buffer temporaire + @temp=(); + @temp=`lsusb`; + push(@ident,"\n########## Identification USB ##########\n"); + # Extraction des champs d'un bloc memoire contenu dans @temp + foreach (@temp) { # foreach temp + $_=" ".$_; + push(@ident,$_); + } +######################################################################### +# PROGRAMME DES INFORMATIONS DES MEMOIRES (DMIDECODE) +######################################################################### +# titre Identification MEMOIRE +push(@ident,$MemTitres[$DescMem[0]]); +# initialisation des variables +$flag=0; +# vidage des tableaux temporaires +@temp=(); +# Pour chaque item a afficher +foreach (@tabdmidecode) { # foreach @tabdmidecode + #print"@tabdmidecode \n"; + # vidage des tableaux temporaires + @temp=(); + # extraction de la capacite maxi + if ( m/Capacity/ ){ + s/\s+/ /; + push(@ident,$_); + #s/Capacity//; + } +# extraction d'un bloc memoire dans @temp + if ( $flag==0 ){ # attente debut du bloc vu + if ( m/$DescMem[2]/ ){ # debut du bloc vu + $flag=1; + push(@ident,"\n************* BANK ***************\n"); + } + }else{ # attente fin du bloc vu + push(@temp,$_); + if ( m/$DescMem[3]/ ){ # fin du bloc vu + $flag=0; + } + } + +# Extraction des champs d'un bloc memoire contenu dans @temp + foreach (@temp) { # foreach temp + if ( m/$ChampsMem[$DescMem[1]]/ ){ + s/\s+/ /; + #print; + + push(@ident,$_); + } + } # fin boucle foreach temp +} # fin boucle foreach @tabdmidecode + + +######################################################################### +# PROGRAMME DES INFORMATIONS DISK (SMARTCTL) +######################################################################### +# titre Identification DISK +push(@ident,$DiskTitres[$DescDisk[0]]); +# pour chaque disque +foreach (@ListDisk) { # foreach disk +# commande infos des disques +@tabsmart=`smartctl -i $_`; +# separation du chemin et nom du disque +(my $A, my $B, $D)=split /\//; +chop($D); +# memorisation chemin + nom du disque +$PathD =$_; +chop($PathD); + +#@tabsmart=`smartctl -i /dev/$D`; +push(@ident,"\n*************** disk ".$D." *************\n"); + +# pour chaque disque extraction des champs description + foreach (@tabsmart) { # foreach tabsmart + if ( m/$champsdisk[$DescDisk[1]]/ ){ + $_=" ".$_; + #print; + push(@ident,$_); + } + } # fin boucle foreach tabsmart + # Sante du disque + push(@ident,"\n--------------- Etat Disk ".$D." --------------\n"); + @temp=(); + @temp=`smartctl -H $PathD`; + # pour chaque ligne de la commande smartctl + foreach (@temp) { + # recherche du resultat sante disk + #$nb++; + if ( m/result:/ ){ + #$nb++; + #print "$nb\n"; + # Affichage de la ligne pour POPUP + #push(@affich,"Partition"."sdisk".":"$_); + push(@affich,"Partition ".$D.": ".$_); + # si le resultat est OK alors enregistrement + if ( m/PASSED/ ){ + #$nb++; + #print "$nb\n"; + push(@ident,$_); + } + else{ + # si le resultat est NOK alors enregistrement de la commande + @temp2=`smartctl -a $PathD`; + foreach (@temp2) { + push(@ident,$_); + } # fin foreach (@temp2) + } + } + } # fin foreach (@temp) +} # fin foreach disk + +######################################################################### +# PROGRAMME DE LA GENERATION FICHIER RESULTAT +######################################################################### +# initialisation des variables +$flag=0; +foreach (@RefMachine) { # foreach @RefMachine + @temp=(); + # Pour chaque item a afficher + if ($_ eq "PC"){($A, $data, $start, $end)=@DescOrdi2;} + if ($_ eq "CM"){($A, $data, $start, $end)=@DescCM2;} + $item=$_; + #print "$A\n"; + #print "$data\n"; + #print "$start\n"; + #print "$fin\n"; + foreach (@FicTab) { # foreach @FicTab + # extraction d'un bloc memoire dans @temp + if ( $flag==0 ){ # attente debut du bloc vu + if ( m/$start/ ){ # debut du bloc vu + s/$_//; + $flag=1; + } + }else{ # attente fin du bloc vu + push(@temp,$_); + if ( m/$end/ ){ # fin du bloc vu + $flag=0; + } + } + + # Extraction des champs d'un bloc memoire contenu dans @temp + foreach (@temp) { # foreach temp + if ( m/$ChampsRef[$data]/ ){ + #s/\s+//; + #print"$_"; + (my $E, my $Ref)=split(/:/,$_); + $_=$Ref; + s/\s+//; + chop($_); + #print"$_"; + if ($item eq "PC"){$RefPC=$_;} + if ($item eq "CM"){$RefCM=$_;} + } + } # fin boucle foreach temp + } # fin boucle foreach @FicTab + +} # fin boucle foreach @RefMachine +#print "$RefPC"; +#print "$RefCM"; + +# patern pour test de la validite du test de la reference PC et CM +#$RefPC="CZC1194MME"; +#$RefPC=undef; +#$RefPC=""; + +#$RefCM="CZC1194MMF"; +#$RefCM=undef; +#$RefCM=""; +# fin patern pour test de la validite du test de la reference PC et CM + +# Test si $RefPC est: defini ET n'est pas une chaine vide ET ne contient pas d'espace +# Test si $RefCM est: defini ET n'est pas une chaine vide ET ne contient pas d'espace +if ((defined $RefPC) && ($RefPC ne "") && !($RefPC =~ m/\s+/)) +{ $NomFic="PC_".$RefPC.".txt"; +}elsif((defined $RefCM) && ($RefCM ne "") && !($RefCM =~ m/\s+/)){ + $NomFic="CM_".$RefCM.".txt"; + }else{ + $NomFic="ERROR.txt"; +} + + +######################################################################### +# PROGRAMME DE CONCATENATION DES FICHIERS CHECKLIST PLUS CARACTERISTIQUES +######################################################################### +# La concatenation des fichiers checklist suivi de caractéristiques +# se trouve dans un fichier nommé avec la référence du PC ou de la carte +# Enregistrement du tableau @ident dans le fichier de nom $NomFic + +open(my $FIN, "<",$CheckFile) or die "Ouverture du fichier $CheckFile impossible\n"; +open(my $FOUT, ">",$PathFicout.$NomFic) or die "Ouverture du fichier $NomFic impossible\n"; +# Recopie du fichier checklist dans le fichier ref PC ou carte $NomFic +while(<$FIN>){ +print ($FOUT $_); # ecrit la ligne dans le fichier $NomFic +#print("$_"); +} +#print ($Fout "TOTO\n"); +#print "\n"; +# Recopie du tableau caracteristiques PC dans le fichier ref PC ou carte $NomFic +foreach(@ident){ +print ($FOUT $_); +#print("$_"); +} +close ($FIN); +close ($FOUT); + +######################################################################### +# PROGRAMME D'ENVOI DU FICHIER RESULTAT VERS LE SERVEUR +######################################################################### +# Envoi du fichier concatené checklist plus caracteristiques PC sur le serveur +my $ret=system("rsync --port 10073 -aP " . $PathFicout.$NomFic . " 'lalis69.ddns.net::lalis-ordis/'"); +#my $ret=system("rsync --port 10073 -aP " . $PathFicout.$NomFic . " 'lalis68.ddns.net::lalis-ordis/'"); +# sauvegarde du code retour +#my $ret=$?; +#print "******* $? ******\n"; +#$ret=10; +#print "******* $ret ******\n"; + +# Libele et affichage du code retour de rsync + if (exists ($CodeRetourRsync{$ret})){ + $_ = "Code retour rsync: ".$ret; + push(@affich,$_); + $_ = "Libellé code retour rsync: ".$CodeRetourRsync{$ret}; + push(@affich,$_); + } + else{ + push(@affich,"Code retour rsync Inconnu!!! ".$ret); + } + +######################################################################### +# PROGRAMME DE L'AFFICHAGE POPUP DE FIN DE TRAITEMENT +######################################################################### +my $mw = MainWindow->new(); +$mw->title("Resultat test HDD"); +$mw->geometry("700x100"); +foreach (@affich) { + # affichage dans la fenetre + $mw->Label(-text => $_)->pack; +} +MainLoop; + +print "\n########## Nom fichier resultat: $NomFic ##########\n"; +print "\n################ Traitement terminé ################\n"; +print "\n"; +################################ FIN PROGRAMME ################################ + + + + + + + + + + + + + + diff --git a/SOURCES/journald.conf b/SOURCES/journald.conf new file mode 100644 index 0000000..7a77697 --- /dev/null +++ b/SOURCES/journald.conf @@ -0,0 +1,33 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. +# +# See journald.conf(5) for details + +[Journal] +#Storage=auto +Compress=yes +#Seal=yes +#SplitMode=login +#SyncIntervalSec=5m +#RateLimitInterval=30s +#RateLimitBurst=1000 +SystemMaxUse=200M +SystemKeepFree=1G +SystemMaxFileSize=200M +RuntimeMaxUse=200M +RuntimeKeepFree=300M +RuntimeMaxFileSize=200M +#MaxRetentionSec= +MaxFileSec=15days +ForwardToSyslog=yes +#ForwardToKMsg=no +ForwardToConsole=yes +TTYPath=/dev/tty12 +#MaxLevelStore=debug +#MaxLevelSyslog=debug +#MaxLevelKMsg=notice +#MaxLevelConsole=info diff --git a/SOURCES/lalis-i586-source.repo b/SOURCES/lalis-i586-source.repo new file mode 100644 index 0000000..a0c6629 --- /dev/null +++ b/SOURCES/lalis-i586-source.repo @@ -0,0 +1,9 @@ +[lalis-i586-source] +name=Lalis $releasever - i586 -source +baseurl=https://lalis69.ddns.net:10443/mageia/lalis/$releasever/ +#metalink=https://mirrors.mageia.org/metalink?distrib=mageia-$releasever&arch=i586§ion=core&repo=release +#mirrorlist=https://lalis69.ddns.net:10443/mageia/lalis/$releasever/i586/media/core +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Lalis +fastestmirror=1 +enabled=0 diff --git a/SOURCES/lalis-i586.repo b/SOURCES/lalis-i586.repo new file mode 100644 index 0000000..3be1713 --- /dev/null +++ b/SOURCES/lalis-i586.repo @@ -0,0 +1,9 @@ +[lalis-i586] +name=Lalis $releasever - i586 +baseurl=https://lalis69.ddns.net:10443/mageia/lalis/$releasever/ +#metalink=https://mirrors.mageia.org/metalink?distrib=mageia-$releasever&arch=i586§ion=core&repo=release +#mirrorlist=https://lalis69.ddns.net:10443/mageia/lalis/$releasever/i586/media/core +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Lalis +fastestmirror=1 +enabled=0 diff --git a/SOURCES/lalis-x86_64-source.repo b/SOURCES/lalis-x86_64-source.repo new file mode 100644 index 0000000..2e41b3a --- /dev/null +++ b/SOURCES/lalis-x86_64-source.repo @@ -0,0 +1,9 @@ +[lalis-x86_64-source] +name=Lalis $releasever - x86_64 - source +baseurl=https://lalis69.ddns.net:10443/mageia/lalis/$releasever/ +#metalink=https://mirrors.mageia.org/metalink?distrib=mageia-$releasever&arch=x86_64§ion=core&repo=release +#mirrorlist=https://lalis69.ddns.net:10443/mageia/lalis/$releasever/x86_64/media/core +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Lalis +fastestmirror=1 +enabled=1 diff --git a/SOURCES/lalis-x86_64.repo b/SOURCES/lalis-x86_64.repo new file mode 100644 index 0000000..64f7876 --- /dev/null +++ b/SOURCES/lalis-x86_64.repo @@ -0,0 +1,9 @@ +[lalis-x86_64] +name=Lalis $releasever - x86_64 +baseurl=https://lalis69.ddns.net:10443/mageia/lalis/$releasever/ +#metalink=https://mirrors.mageia.org/metalink?distrib=mageia-$releasever&arch=x86_64§ion=core&repo=release +#mirrorlist=https://lalis69.ddns.net:10073/mageia/lalis/$releasever/x86_64/media/core +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Lalis +fastestmirror=1 +enabled=1 diff --git a/SOURCES/lalis.png b/SOURCES/lalis.png new file mode 100644 index 0000000..c9c725f Binary files /dev/null and b/SOURCES/lalis.png differ diff --git a/SOURCES/lalistunnel b/SOURCES/lalistunnel new file mode 100755 index 0000000..cdd1bcf --- /dev/null +++ b/SOURCES/lalistunnel @@ -0,0 +1,5 @@ +#!/usr/bin/sh + +ssh -i /usr/share/lalis/ssh_id_rsa -p 10022 -N -f -R 6000:localhost:22 ssh@lalis69.ddns.net +ssh -i /usr/share/lalis/ssh_id_rsa -p 10022 -N -f -R 5900:localhost:5900 ssh@lalis69.ddns.net +x0vncserver -display :0 -SecurityTypes None -rfbport 5900 diff --git a/SOURCES/simple-scan.mo.patch b/SOURCES/simple-scan.mo.patch new file mode 100644 index 0000000..d90f98f Binary files /dev/null and b/SOURCES/simple-scan.mo.patch differ diff --git a/SOURCES/ssh_id_rsa b/SOURCES/ssh_id_rsa new file mode 100644 index 0000000..b2f8862 --- /dev/null +++ b/SOURCES/ssh_id_rsa @@ -0,0 +1,38 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +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 +-----END OPENSSH PRIVATE KEY----- diff --git a/SOURCES/test.desktop b/SOURCES/test.desktop new file mode 100644 index 0000000..9408f67 --- /dev/null +++ b/SOURCES/test.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +Comment[fr_FR]=Outils de test et d'inventaire matériel de LALIS +Comment=Outils de test et d'inventaire matériel de LALIS +Exec=kdesu -u root /usr/bin/identMM.pl +GenericName[fr_FR]=Test +GenericName=Test +Icon=bleachbit +MimeType= +Name[fr_FR]=Test +Name=Test +Path= +StartupNotify=true +Terminal=true +TerminalOptions=\s--noclose +Type=Application +X-DBUS-ServiceName= +X-DBUS-StartupType= +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/SPECS/lalis-config.spec b/SPECS/lalis-config.spec new file mode 100644 index 0000000..5a63db9 --- /dev/null +++ b/SPECS/lalis-config.spec @@ -0,0 +1,198 @@ +Summary: Install LALIS configuration +Name: lalis-config +Version: 1 +Release: %mkrel 1 +License: GPLv3 +Group: Tools +Url: http://lalis.fr +BuildArch: noarch +Source1: journald.conf +Source2: lalistunnel +Source3: Lalis.desktop +Source4: identMM.pl +Source5: test.desktop +Source6: checklist.txt +Source8: ssh_id_rsa +Source9: RPM-GPG-KEY-Lalis +Source10: lalis-i586.repo +Source11: lalis-i586-source.repo +Source12: lalis-x86_64.repo +Source13: lalis-x86_64-source.repo +Obsoletes: task-lalis-minimal < 5.6 + +%description +Configure for lalis tools + +%install +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_datadir}/lalis +mkdir %{buildroot}%{_datadir}/kio_desktop +mkdir -p %{buildroot}%{_datadir}/dist/desktop-files/default +mkdir -p %{buildroot}%{_sysconfdir}/pki/rpm-gpg +mkdir %{buildroot}%{_sysconfdir}/yum.repos.d +cp %{SOURCE2} %{buildroot}%{_bindir} +cp %{SOURCE4} %{buildroot}%{_bindir} +cp %{SOURCE3} %{buildroot}%{_datadir}/kio_desktop/ +cp %{SOURCE3} %{buildroot}%{_datadir}/dist/desktop-files/default/ +cp %{SOURCE5} %{buildroot}%{_datadir}/dist/desktop-files/default/ +cp %{SOURCE1} %{buildroot}%{_datadir}/lalis/ +cp %{SOURCE6} %{buildroot}%{_datadir}/lalis/ +cp %{SOURCE8} %{buildroot}%{_datadir}/lalis/ +cp %{SOURCE9} %{buildroot}%{_sysconfdir}/pki/rpm-gpg/ +cp %{SOURCE10} %{buildroot}%{_sysconfdir}/yum.repos.d/ +cp %{SOURCE11} %{buildroot}%{_sysconfdir}/yum.repos.d/ +cp %{SOURCE12} %{buildroot}%{_sysconfdir}/yum.repos.d/ +cp %{SOURCE13} %{buildroot}%{_sysconfdir}/yum.repos.d/ + +%files + +%{_bindir}/lalistunnel +%{_bindir}/identMM.pl +%{_datadir}/kio_desktop/Lalis.desktop +%{_datadir}/lalis/* +%{_datadir}/dist/desktop-files/default/* +%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-Lalis +%{_sysconfdir}/yum.repos.d/* + +%post +# configuration de l'assistance à distance +# trouve le nom du dossier de bureau +desktop() +{ + if [ -f "$1/.config/user-dirs.dirs" ]; then + DESKTOP=`grep XDG_DESKTOP_DIR $1/.config/user-dirs.dirs` + DESKTOP=`echo ${DESKTOP##*/} | sed -e s/\"//g` + else + DESKTOP="" + fi +} + +# crée un utilisateur Lalis et enlève les droits de lecture/écriture/visibilité/exécution à others +cp -f /usr/share/lalis/journald.conf /etc/systemd/ +getent passwd lalis +if [ ${?} -ne 0 ]; then + adduser lalis + chmod -R o-rwX /home/lalis + passwd lalis << EOF +Lalis +Lalis +EOF +fi + +# Ajoute l'utilisateur lalis à la liste des utilisateurs autorisés à se connecter en ssh +echo "Ajout de l'utilisateur Lalis dans sshd_config" +if [ -z "`grep lalis /etc/ssh/sshd_config`" ]; then + if [ -z "`grep -i allowusers /etc/ssh/sshd_config`" ]; then + echo "Allowusers lalis" >>/etc/ssh/sshd_config + else + sed -i -e 's/^Allowusers.*$/& lalis/g' /etc/ssh/sshd_config + fi +fi +echo "relance sshd" +/usr/bin/systemctl restart sshd + +# Ajoute le fichier test.desktop sur le bureau de l'utilisateur lalis +echo "Ajout du script de test sur le bureau de lalis" +desktop /home/lalis +echo $DESKTOP +if [ "$DESKTOP" = "" ]; then + /usr/bin/mkdir "/home/lalis/Desktop" +fi +chmod a+rw /usr/share/lalis/checklist.txt +cp /usr/share/dist/desktop-files/default/test.desktop /home/lalis/$DESKTOP/ +chown lalis:lalis -R /home/lalis/$DESKTOP/test.desktop +# Copie le fichier Lalis.desktop dans le dossier /etc/skel +cp -f /usr/share/kio_desktop/Lalis.desktop /etc/skel/$DESKTOP + +# Copie le fichier Lalis.desktop sur le bureau des utilisateurs existant +echo "copie de lalis.desktop dans le bureau des utilisateurs" +cp -f /usr/share/kio_desktop/Lalis.desktop /usr/share/dist/desktop-files/default/ +for i in /home/* +do + USER=`basename "$i"` + getent passwd "$USER" + if [ ${?} -eq 0 ]; then + if [ -d $i ]; then + desktop "/$i" + echo $DESKTOP + if ! [ -d "$i/$DESKTOP" ]; then + su -c "mkdir $i/$DESKTOP" - "$USER" + echo "su -c mkdir $i/$DESKTOP - $USER" + fi + cp -fa /usr/share/kio_desktop/Lalis.desktop "$i/$DESKTOP/" + chown $USER:$USER "$i/$DESKTOP" + fi + fi +done + +#disabling mdadm when no raid detected + +MD=`grep -c active /proc/mdstat` +if [ $MD > 0 ]; then + echo "Désactivation de mdadm" + systemctl disable mdadm.service +fi + +#disabling network-up if nfs not used +if [ ! -e /etc/nfs.conf ]; then + echo "Désactivation de network-up" + systemctl disable network-up +fi +ARCH=`uname -i` +U=`uname -r` +MGAVERSION=${U##*.mga} + +#adding lalis mirror +echo "ajout du miroir Lalis" +grep -q 'lalis rsync://lalis69.ddns.net:10073/mageia/lalis/' /etc/urpmi/urpmi.cfg +if [ ${?} -ne 0 ]; then + echo -e "\nlalis rsync://lalis69.ddns.net:10073/mageia/lalis/$MGAVERSION/x86_64/media/core {\n}" >>/etc/urpmi/urpmi.cfg + echo "urpmi.update lalis" | at now +1 minutes +fi + +%postun + +# trouve le nom du dossier de bureau +desktop() +{ + if [ -f "$1/.config/user-dirs.dirs" ]; then + DESKTOP=`grep XDG_DESKTOP_DIR $1/.config/user-dirs.dirs` + DESKTOP=`echo ${DESKTOP##*/} | sed -e s/\"//g` + else + DESKTOP="" + fi +} + +# supprime l'utilisateur Lalis +echo "Suppression de l'utilisateur lalis (dossier personnel compris)" +userdel -rf lalis + +# supprime l'utilisateur lalis de la liste des utilisateurs autorisés à se connecter en ssh +echo "suppression de l'utilisateur lalis de sshd_config" +if [ -n "`grep lalis /etc/ssh/sshd_config`" ]; then + sed -i -e 's/ lalis//g' /etc/ssh/sshd_config +fi +/usr/bin/systemctl restart sshd + +# Supprime le fichier Lalis.desktop dans le dossier /etc/skel +echo "suppression de Lalis.desktop du dossier /etc/skel" +rm -f /etc/skel/$DESKTOP/Lalis.desktop + +# Supprime le fichier Lalis.desktop de bureau des utilisateurs existant +echo "suppression de Lalis.desktop du dossier de bureau des utilisateurs" +for i in /home/* +do + USER=`basename "$i"` + getent passwd "$USER" + if [ ${?} -eq 0 ]; then + if [ -d $i ]; then + desktop "/$i" + echo $DESKTOP + rm -f "$i/$DESKTOP/Lalis.desktop" + fi + fi +done + +# supprime le miroir lalis +echo "suppression du dépôt lalis" +echo "urpmi.removemedia lalis" | at now +1 minutes