1
0

Merge branch 'master' of git.labolyon.fr:DTux/task-lalis

This commit is contained in:
Daniel Tartavel 2019-06-09 22:54:47 +02:00
commit 40ae91ea61
6 changed files with 417 additions and 160 deletions

View File

@ -8,31 +8,27 @@ bouton droit haut :
bouton gauche bas :
bouton droit bas :
USB droite AR :
USB droite AV :
USB gauche AR :
USB gauche AV :
Prises USB 2 :
Prises USB 3 :
e-sata :
USB =
e-sata =
audio intégré :
audio intégré
jack audio out :
jack audio in :
Jack micro :
VGA :
HDMI :
mini-HDMI :
display port :
réglage audio clavier :
réglage bouton "sans-fil" :
bluetooth :
Wifi :
lecteur DVD :
lecteur d'empreinte digitale :
firewire :
série :
port firewire :
port série :
SD_card :

395
SOURCES/identMM.pl Executable file
View File

@ -0,0 +1,395 @@
#!/usr/bin/perl
use strict;
use warnings;
#********** 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 -l /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;
#********** 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;
#########################################################################
# 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
(my $A, my $B, $D)=split /\//;
chop($D);
@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
} # 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);
# Concaténation des fichiers checklist et caracteristique (identPC)
#open(my $FIN, "<",$NomFic) or die "Ouverture du fichier $NomFic impossible\n";
#open(my $FOUT, ">>",$CheckFile) or die "Ouverture du fichier $CheckFile impossible\n";
#print ($Fout "TOTO\n");
#print "\n";
#while(<$FIN>){
#print ($FOUT $_); # ecrit la ligne dans le fichier $CheckFile
#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
system("rsync --port 10073 -aP " . $PathFicout.$NomFic . " 'lalis69.ddns.net::lalis-ordis/'");
print "\n########## Nom fichier resultat: $NomFic ##########\n";
print "\n################ Traitement terminé ################\n";
print "\n";
################################ FIN PROGRAMME ################################

View File

@ -1,114 +0,0 @@
#!/usr/bin/bash
######### Script d'etablissement de la fiche technique d'un PC #########
FILE="$DESKTOP/identification.txt"
usage()
{ echo ' Usage:'
echo ' -Argument 1: Entrer: p pour portable ou d pour desktop'
echo ' -Argument 2: Entrer: le numéro de série du PC'
echo ''
}
# test du nombre d'arguments < 2
#if [ "${#}" -lt 2 ]
#then usage
# exit 3
#fi
# test du type de PC (Portable ou Desktop)
if [ "${1}" = "p" ]
then echo '#*******************************************************#'
echo "# Portable numéro de série: ${2} "
echo '#*******************************************************#'
elif [ "${1}" = "d" ]
then echo '#*******************************************************#'
echo "# Desktop numéro de série: ${2} "
echo '#*******************************************************#'
fi
#*********** Identification PC *************
echo '' > $FILE
echo '/************** Identification PC **************/' >> $FILE
/usr/sbin/lshw -class system | sed -n '/description/p;/produit/p;/fabriquant/p;/numéro/p' >> $FILE
#*********** Identification BIOS *************
echo '' >> $FILE
echo ' /********** Identification BIOS **********' >> $FILE
/usr/sbin/dmidecode -t bios | sed -n '/Vendor/p;/Version/p;/Release/p;/Revision/p' >> $FILE
#*********** Identification CARTE MERE *************
echo '' >> $FILE
echo ' /********** Identification CARTE MERE **********' >> $FILE
/usr/sbin/lshw | grep -A 5 "description: Carte mère" >> $FILE
#*********** Identification CARTE GRAPHIQUE *************
echo '' >> $FILE
echo ' /********** Identification CARTE GRAPHIQUE **********' >> $FILE
/usr/sbin/lshw -class display | sed -n '/description/p;/produit/p;/fabriquant/p;/version/p' >> $FILE
#*********** Identification processeur *************
echo '' >> $FILE
echo ' /********** Identification processeur **********' >> $FILE
/usr/sbin/lshw -class processor | sed -n '/description/p;/produit/p;/fabriquant/p;/bits/p;/configuration/p' >> $FILE
#*********** Identification RAM *************
echo '' >> $FILE
echo ' /********** Identification RAM **********' >> $FILE
/usr/sbin/dmidecode -t memory | head -n 24 | sed -n '/Maximum/p' >> $FILE
echo '' >> $FILE
/usr/sbin/dmidecode -t memory | head -n 24 | sed -n '/Bank/p' >> $FILE
/usr/sbin/dmidecode -t memory | head -n 30 | sed -n '/Manufacturer/p;/Type/p;/Size/p;/Speed/p;/Serial/p' >> $FILE
echo '' >> $FILE
/usr/sbin/dmidecode -t memory | tail -n 11 | sed -n '/Bank/p' >> $FILE
/usr/sbin/dmidecode -t memory | tail -n 19 | sed -n '/Manufacturer/p;/Type/p;/Size/p;/Speed/p;/Serial/p' >> $FILE
#*********** Identification HDD *************
#echo '' >> $FILE
#echo ' /********** Identification HDD **********' >> $FILE
#/usr/sbin/lshw -class disk | head -n 13 | sed -n '/description/p;/produit/p;/fabriquant/p;/série/p;/taille/p' >> $FILE
#*********** Identification DVD *************
echo '' >> $FILE
echo ' /********** Identification DVD **********' >> $FILE
/usr/sbin/lshw -class disk | tail -n 14 | sed -n '/description/p;/produit/p;/fabriquant/p;/version:/p;/fonctionnalités:/p' >> $FILE
#*********** Identification réseau filaire *************
echo '' >> $FILE
echo ' /********** Identification réseau filaire **********' >> $FILE
/usr/sbin/lshw -class network | head -n 13 | sed -n '/description/p;/produit/p;/fabriquant/p;/numéro/p;/capacité/p' >> $FILE
#*********** Identification autre réseau *************
echo '' >> $FILE
echo ' /********** Identification autre réseau **********' >> $FILE
/usr/sbin/lshw -class network | tail -n 14 | sed -n '/description/p;/produit/p;/fabriquant/p;/numéro/p' >> $FILE
echo '' >> $FILE
echo ' /********** Identification USB et autre**********' >> $FILE
lsusb >> $FILE
#*********** Identification batterie *************
echo '' >> $FILE
echo ' /********** Identification Batterie **********' >> $FILE
/usr/sbin/lshw -class power | sed -n '/produit/p;/fabriquant/p;/capacité/p;/configuration/p' >> $FILE
echo '' >> $FILE
#*********** Test des disques durs *************
for DISK in `lsblk -dn -x NAME --output NAME`
do
echo '' >> $FILE
echo " /********** Test du disk #$DISK# **********" >> $FILE
/usr/sbin/smartctl -H /dev/$DISK| grep -c "PASSED"
if [ $? -ne 0 ]; then
/usr/sbin/smartctl -a /dev/$DISK >> $FILE
echo "############ Problème sur le disque $DISK ########################"
echo "############ Problème sur le disque $DISK ########################" >>$FILE
echo '' >> $FILE
else
/usr/sbin/smartctl -i /dev/$DISK >> $FILE
echo "############ Pas de problèmes détectés sur le disque $DISK ########################"
echo "############ Pas de problèmes détectés sur le disque $DISK ########################" >> $FILE
fi
done

View File

@ -1,23 +0,0 @@
#!/usr/bin/sh
DESKTOP=`grep XDG_DESKTOP_DIR $1/.config/user-dirs.dirs`
DESKTOP=${DESKTOP##*}
export $DESKTOP
/usr/local/bin/identPC.sh
/usr/bin/kate $DESKTOP/checklist.txt
grep -is -m 2 "numéro de série" $DESKTOP/identification.txt >tmp.txt
while read LIGNE
do
TMP=${LIGNE##*}
if [ "$TMP" != "Number" ];then
DIRNAME="$DIRNAME$TMP"
break
else
DIRNAME="CM_"
fi
done < tmp.txt
rm -f tmp.txt
mkdir $DIRNAME
rsync --port 10073 -aP $DESKTOP/*.txt "lalis69.ddns.net::lalis-ordis/$DIRNAME"

View File

@ -1,7 +1,7 @@
[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/local/bin/sync_check.sh
Exec=kdesu -u root /usr/local/bin/identMM.pl
GenericName[fr_FR]=Test
GenericName=Test
Icon=bleachbit

View File

@ -1,6 +1,6 @@
Summary: Install LALIS packages and configuration
Name: task-lalis
Version: 2.1
Version: 2.4
Release: %mkrel 1
License: GPLv3
Group: Tools
@ -9,8 +9,8 @@ BuildArch: noarch
Source1: journald.conf
Source2: lalistunnel
Source3: Lalis.desktop
Source4: identPC.sh
Source5: sync_check.sh
Source4: identMM.pl
#Source5: sync_check.sh
Source6: checklist.txt
Source7: test.desktop
Requires: kate
@ -123,15 +123,16 @@ This package installs LALIS choosen packages and some configurations.
%install
mkdir -p %{buildroot}/tmp/
mkdir -p %{buildroot}/usr/local/bin/
mkdir -p %{buildroot}/usr/share/lalis/
mkdir -p %{buildroot}/usr/share/kio_desktop/
mkdir -p %{buildroot}/usr/share/dist/desktop-files/default/
cp -af %{SOURCE1} %{buildroot}/tmp/
cp -f %{SOURCE2} %{buildroot}/usr/local/bin/
cp -f %{SOURCE4} %{buildroot}/usr/local/bin/
cp -f %{SOURCE5} %{buildroot}/usr/local/bin/
#cp -f %{SOURCE5} %{buildroot}/usr/local/bin/
cp -f %{SOURCE3} %{buildroot}/usr/share/kio_desktop/
cp -f %{SOURCE3} %{buildroot}/usr/share/dist/desktop-files/default/
cp -f %{SOURCE6} %{buildroot}/usr/share/dist/desktop-files/default/
cp -f %{SOURCE6} %{buildroot}/usr/share/lalis/
cp -f %{SOURCE7} %{buildroot}/usr/share/dist/desktop-files/default/
%files
@ -140,9 +141,9 @@ cp -f %{SOURCE7} %{buildroot}/usr/share/dist/desktop-files/default/
# créer un utilisateur Lalis enlève les droits de lecture/écriture/visibilité/exécution à others
/tmp/journald.conf
/usr/local/bin/lalistunnel
/usr/local/bin/identPC.sh
/usr/local/bin/sync_check.sh
/usr/local/bin/identMM.pl
/usr/share/kio_desktop/Lalis.desktop
/usr/share/lalis/*
/usr/share/dist/desktop-files/default/*
%post
@ -169,7 +170,7 @@ if [ -z "`grep lalis /etc/ssh/sshd_config`" ]; then
echo "Allowusers lalis" >>/etc/ssh/sshd_config
fi
# Ajoute le fichier checklist.txt et test.desktop sur le bureau de l'utilisateur lalis
# Ajoute le fichier test.desktop sur le bureau de l'utilisateur lalis
desktop /home/lalis
echo $DESKTOP
if ! [ -d "/home/lalis/$DESKTOP" ]; then
@ -177,9 +178,11 @@ if ! [ -d "/home/lalis/$DESKTOP" ]; then
fi
cp /usr/share/dist/desktop-files/default/checklist.txt /home/lalis/$DESKTOP/
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
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/$DESKTOP/
# Copie le fichier Lalis.desktop dans les dossier utilisateurs existant
cp -f /usr/share/kio_desktop/Lalis.desktop /usr/share/dist/desktop-files/default/