Mission 3 – Simplification de création de compte

Cette mission consiste à simplifier certaine opérations de gestion de comptes comme :

-la modification du mot de passe d’un des utilisateurs Xilim

-la création d’un compte manuellement

-la supression d’un compte d’un utilisateur Xilim manuellement

Partie 1: la modification du mot de passe d’un des utilisateurs Xilim

Voici le code de la page qui permet la simplification de la modification du mot de passe d’un des utilisateur Xilim:

<!DOCTYPE html>
<html>
<head>
<meta charset= »UTF-8″>
<title>Modify Passwords</title>
</head>
<body>
<form method = « POST » action= »treatPasswd.php »>

<p>

<br>
<?php
$user = shell_exec(« cat /etc/passwd | grep -E ‘:1007::|:1008::|:1004::|:1009::’ | awk -F: ‘{print $ 1}' » );
$u = explode(« \n », $user);
array_pop($u);
?>
<select name= »user »>
<?php

foreach($u as $unUser){

echo ‘<option value = ‘ . »$unUser » . »> ». $unUser. »</option> »;
echo « \n »;
}
?>
</select>
<br>
password :
<input type= »password » name= »passwd » placeholder= »Saisir nouveau mot de passe »>
<br>
<input type= »submit » name= »Valider » value= »OK »>
</form>
</body>
</html>

 

Ici, une liste déroulante est utilisé dans un formulaire HTML pour affiché tous les utilisateurs Xilim. Ces utilisateurs sont tous affiché dans la liste déroulante à l’aide d’une boucle en PHP exploitant un tableaux qui est le résultat d’une commande Linux. En effet, le tableau stocke tous les utilisateurs Xilim à l’aide de la commande Linux  » cat /etc/passwd | grep -E ‘:1007::|:1008::|:1004::|:1009::’ | awk -F: ‘{print $ 1}’ « .

Voici un aperçu de la page de modification du mot de passe pour les utilisateurs Xilim:

lo

Partie 2 : la création d’un compte manuellement 

Voici le code qui permet la création d’un compte manuellement de façon simplifiée :

<!DOCTYPE html>
<html>
<head>
<meta charset = « UTF-8″>
<title>Adding an account </title>
</head>

<body>
<form method= »POST » action= »treatAccount.php »>
<p>
Name :
<input type = »text » name= »name » placeholder= »input your name »>
<br>Firstname :
<input type = »text » name= »firstname » placeholder= »input your firstname »>
<br>Password :
<input type = »password » name= »passwd » placeholder= »input your password »>
<br><br>
Groups(radios)<br>
<?php
$group = shell_exec(« cat /etc/group | grep -E ‘:1007:|:1008:|:1004:|:1009:’ | awk -F: ‘{print $ 1}’ « );
$g = explode(« \n », $group);
array_pop($g);
array_push($g, »steaks »);
?>
<?php

foreach($g as $unGroup){

echo ‘<input type= »radio » name= »group » value = ‘ . »$unGroup » . »> ». $unGroup;
echo « <br> »;
}
?>
<br><br>
<input type= »submit » value= »Create »>

</form>

</body>
</html>

Voici un aperçu de la page de modification du mot de passe pour les utilisateurs Xilim:

ca.PNG

Partie 3 : la suppression d’un compte d’un utilisateur Xilim manuellement

Voici le code qui permet la suppression d’un compte d’un utilisateur Xilim manuellement de façon simplifiée :

<!DOCTYPE html>
<html>
<head>
<meta charset= »UTF-8″>
<title>Modify Passwords</title>
</head>
<body>
<form method = « POST » action= »treatDeleting.php »>

<p>Suppression de comptes<br>
<?php
$user = shell_exec( » cat /etc/passwd | grep -E ‘:1007:|:1008:|:1004:|:1009:|:1059::’ | awk -F: ‘{print $ 1}’  » );
$u = explode(« \n », $user);
array_pop($u);
?>
<select name= »user »>
<?php

foreach($u as $unUser){

echo ‘<option value = ‘ . »$unUser » . »> ». $unUser. »</option> »;
echo « \n »;
}
?>
</select>
<br>
<br>
<input type= »submit » name= »Valider » value= »Delete »>
</form>
</body>
</html>

Voici un aperçu de la page de modification du mot de passe pour les utilisateurs Xilim:

da

 

Mission 2 – Création automatique de comptes

cette mission consiste à créer des comptes automatiquement à partir d’un fichier CSV qui contient toutes les informations des employés qui auront un compte crées.

Dans le script de création automatique de comptes, j’utilise des commandes Linux car les comptes sont crées dans un système Linux.

Donc, les commandes Linux utilisées sont:

« groupadd –force $NomGroupe » : pour forcer la création d’un groupe lorsque le groupe d’adhésion de la personne qui souhaite avoir un compte n’est pas stocké dans le fichier /etc/group.

« mkdir  /home/xilim/$NomGroupe » : Permet de créer un dossier pour chaque groupe dans le répertoire /home/xilim car la commande « useradd » ne permet pas la création de répertoires en récursivité.

« useradd $loginDown -m -d /home/xilim/$NomGroupe/$NomEmployé –gid $NomGroupe -s /bin/bash -p $(mkpasswd -H md5 $DateAnniversaire) && chage -M 0 -W 0 $NomEmployé » :

Cette commande permet de créer le compte de la personne souhaité. De plus, un répertoire personnel est également crée lors de la création du compte.La personne en question est ajoutée à son groupe, elle se voit attribuer un mot de passe qui correspont à sa date de naissance qui est indiqué dans le fichier CSV. Le mot de passe doit ensuite directement être changé par la personne concerné lors de la première utilisation du compte.

Nous avons donc vu les commandes qui permettent de créer un compte manuellement sur Linux, nous allons maintenant voir le script php qui permet la création automatique de compte sur Linux qui est ci-dessous:

<?php
//lecture d’un fichier ligne par ligne
$fic=fopen(« 2016-employees.csv », « r »);
$i=1 ;//Compteur de ligne
$premiereLigne = true;
while(!feof($fic))
{
$line= fgets($fic,1024);

if (!$premiereLigne && !feof($fic)){
echo « ligne numéro « .$i. » :  » . $line ;
$command = explode(« ; »,$line);
echo « \n », $command[2], »\n »;
$login = substr($command[1],0,1) . substr($command[0],0,6);
$loginDown = strtolower($login);
echo $loginDown , « \n »;

shell_exec(« groupadd –force $command[2] »);
shell_exec(« mkdir /home/xilim/$command[2] »);
shell_exec(« useradd $loginDown -m -d /home/xilim/$command[2]/$loginDown –gid $command[2] -s /bin/bash -p $(mkpasswd -H md5 $command[3]) && chage -M 0 -W 0 $loginDown « );

shell_exec(« mkdir /var/www/$loginDown »);
//shell_exec(« userdel -r $login »);
//shell_exec(« rm -rf /home/xilim/membership_group/$login »);

print_r($command);

$i ++;
}
else{
$premiereLigne=false;
}

}
//echo $command[2];
fclose($fic) ;
?>

Mission 1 – Hôtes virtuels + SGBDR

Cette mission consiste à pouvoir naviguer sur 3 sites diffèrent en fonction du gTLD utilisé dans l’URL ( .org, .com ou .fr) qui sont:

– web4.a207a.xilim.org

– web4.a207a.xilim.com

– web4.a207a.xilim.fr

(configuration fichier /etc/hosts)

Il faut ensuite créer un dossier pour chaque site dans le répertoire /var/www pour stocker les fichiers des sites. Donc, on va créer un dossier xilim.org, xilim.com et xilim.fr.

Ensuite, il faut configurer les virtual Hosts de Apache 2.

(Capture d’écran configuration virtual hosts)

TP3 – Configuration d’un environnement web

Contexte: La société XILIM souhaite mettre en place une machine virtuelle Linux dédiée au développement d’applications informatiques.

L’objectif de ce TP est d’intégrer un environnent web à la machine virtuelle Linux dédiée au développement d’applications informatiques.

Apache2 et PHP5

Nous devons installer Apache2 qui est un serveur web pour mettre en place un environment web dédiée au développement d’applications informatiques.

Donc, le serveur web Apache 2 peut etre installé à l’aide des paquets linux en utilisant la commande suivante:

« apt-get install apache2 »

Pour que le serveur web Apache2 soit fonctionnel , il faut redémarrer le service .

Le redémarrage du service Apache2 est possible de plusieurs manières diffèrentes.En effet, on peut le redémarrer à l’aide de la commande « /etc/init.d/apache2 restart » ou à l’aide de la commande « service apache2 restart ».

Le module PHP5 doit être  bien chargé par le serveur Apache2 . On peut vérifier cela à l’aide de la commande : « apache2ctl -M | sort

A present , nous pouvont créer le fichier /var/www/xilim.php  dont le code source est le suivant:

xilimphp

Maintenant que le script php « xilim.php » a été crée avec le code source ci-dessus , nous pouvons afficher la page web sur un navigateur pour vérifier qu’il n’y à aucune erreur.

xilimexecphp

Configuration des répertoires web utilisateurs

Nous souhaitons que chaque utilisateur qui a été crée sur le serveur WEB dispose d’une page personnelle qui sera accessible via l’URL suivante: (ADRESSE 2. DE TP3)

Donc, les dossiers personnelles des utilisateurs seront stockés dans /home/$USER/public_html

Nous devons activer le module UserDir pour que chaque utilisateur puisse disposer d’une page personnelle.

Donc , pour activer le module UserDir , il faut taper cette commande: a2enmod userdir

Pour que Apache2 prenne en compte les répertoires public_html des utilisateurs, il faut modifier le fichier php5.conf. En effet, il faut commenter les 5 dernières lignes du fichier:

 » <FilesMatch « .+\.ph(p[345]?|t|tml)$ »>
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch « .+\.phps$ »>
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it’s recommended to enable access to the files
# only in specific virtual host or directory
Order Deny,Allow
Deny from all
</FilesMatch>
# Deny access to files without filename (e.g. ‘.php’)
<FilesMatch « ^\.ph(p[345]?|t|tml|ps)$ »>
Order Deny,Allow
Deny from all
</FilesMatch>

# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule …> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_value engine Off
# </Directory>
#</IfModule>  »

On redémarre le serveur WEB à l’aide de la commande service apache2 restart ou /etc/init.d/apache2 restart . Le redémarrage du service Apache2 est nécessaire pour que les changements soit pris en compte.

Pour avoir une page personnelle , il faut créer le répertoire ~/public_html en étant connécté avec l’utilisateur développeur.

Ensuite, nous créons le fichier ~/public_html/xilim.php dont le code source est identique au fichier /var/www/xilim.php.

Donc, on peut copier ce fichier à l’aide de cette commande: cp /var/www/xilim.php ~/public_html/xilim.php

Et enfin , nous pouvons apercevoir la page personnelle de l’utilisateur « developpeur » sur le navigateur en se connectant à l’URL suivante:

http://ADRESSE_IP/~developpeur/xilim.php

Installation de MySQL

Pour installer le SGBDR MySQL , il faut taper cette commande:

 » apt-get install mysql-server mysql-client libmysqlclient15-dev mysql-common  »

Création d’une table avec MySQL

Nous allons créer le script xilim.sql qui se trouve dans le dossier ~/devSiteXILIM/sql .

Donc, voici le code source du script SQL :

non5

Nous allons ensuite éxécuter le script pour créer la base de données MySQL nommée xilim à l’aide de cette commande:

mysql -h localhost -u root -p  <~/devSiteXILIM/sql/xilim.sql

Nous pouvont maintenant nous connecter au SGBDR MySQL pour travailler avec la base de données xilim.

Pour afficher la liste des base de données hebergées dans le SGBDR , il faut taper cette commande :  » show databases ; ».

Nous sélectionnons ensuite la base de donnée xilim avec la commande : « use xilim ; ».

Nous pouvon afficher la liste des tables de la base de données courante à l’aide de « show tables; ».

Nous pouvons afficher la structure de la table Employe avec  » desc Employe ; » et nous pouvons afficher le contenu de la table Employe avec la commande :

« select * from Employe ; ».

non6

Et Enfin , pour quitter le client MySQL  , il suffit de taper « quit ; « .

Utilisation d’une base de données MySQL avec PHP

Pour installer le connecfteur MySQL-PHP5 , il faut taper cette commande:

« apt-get install php5-mysql »

Il faut donc ensuite redémarrer le service Apache2 à l’aide de « service apache2 restart ».

Nous allons créer le fichier « /var/www/collaborateurs.php » dont le code source est donnée ci-dessous:

collab

Ensuite, on peut afficher la page collaborateurs.php sur un navigateur via l’URL:

« http://ADRESSE_IP/collaborateurs.php &raquo;

non8-e1524413439336.png

Encodage UTF-8 des données

Nous allons ajouter à la fin du fichier xilim.sql l’instruction SQL suivante :

insert into Employe(nomEploye,prenomEmploye)  values(‘MARKOVITCH’,’Fréderic’):

On recrée la base de donnée MySQL xilim mais lorsque on réaffiche la page collaborateurs.php , il y à une erreur.

Pour régler le problème d’accent , il faut convertir la base de donnée en UTF-8.

Donc, pour cela , nous allons modifier le fichier /etc/mysql/my.cnf et y ajouter à chaque catégorie corrrespondante les lignes suivante :

 » [client]
default-character-set=utf8

[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect=’SET NAMES utf8′
character-set-server = utf8  »

Nous redémarrons ensuite le service MySQL « /etc/init.d/mysql restart »

Nous devons ensuite modifier le script xilim.sql pour imposer l’encodage UTF-8 à la base de donnée xilim.sql.

Nous devons rajouter cette ligne après la parenthèses de fin du bloc « CREATE TABLE » :

« CHARACTER SET utf8 COLLATE utf8_bin; »

Nous allons ensuite rééxécuter le script SQL pour recréer la base de données MySQL xilim à l’aide de cette commande : « mysql -h localhost -u root -p  <~/devSiteXILIM/sql/xilim.sql »

Enfin , nous pouvons éxécuter le fichier collaborateurs.php sur le terminal et sur le navigateur pour vérifier que l’encodage UTF-8 a bien été pris en compte.

 

 

 

TP2 – Installation d’une machine virtuelle pour le développement

Contexte: La société XILIM souhaite mettre en place une machine virtuelle Linux dédiée au développement d’applications informatiques.

L’objectif de ce TP est de créer et configurer une machine virtuelle destinés au développement.

Création de l’utilisateur  développeur

Nous allons créer le compte utilisateur développeur qui sera le compte utilisateur prinicipale de cette machine virtuelle.

Donc, nous créons ce compte à l’aide de cette ligne de commande(en root):

« adduser développeur »

Création de l’arborescence pour le développement

Nous allons installer l’utilitaire tree qui permet d’afficher des arborescence avec plus de clarté qu’avec la commande ls. En effet , l’utilitaire tree permet d’afficher une arborescence complète avec plusieurs degrès de sous répertoires.

Donc, nous installons cette utilitaire .

« apt-get install tree »

Ensuite, il faut utiliser les commandes mkdir et cd qui permettent respectivement de créer des répertoires et de changer de répertoire.

L’arborescence ressemble finalement à ça:

tree

Configuration IP

La configuration IP sous Linux se trouve dans le fichier  interface qui est dans dossier /etc/network.

Donc, pour modifier la configuration IP , nous devons accèder à ce fichier à l ‘aide de la commande suivante:

« nano /etc/network/interface »

interfaces

Il faut aussi que le serveur DNS soit celui de la salle A207A.

Pour cela , Il faut accèder au fichier /etc/resolv.conf. Donc, nous pouvon y accèder à l’aide de la commande suivante:

« nano /etc/resolv.conf »

Il faut redémarrer les services réseaux à l’aide de cette commande:

service networking restart

Modification du nom de l’hote de la machine virtuelle

Pour modifier le nom de l’hote , il suffit de modifier le fichier /etc/hostname à l’aide de cette commande:

« nano /etc/hostname »

Interpréteur Python

Pour savoir quelle version de l’interpréteur Python 2 est installé , il suffit de taper cette commande:

« python2 –version »

pythonv

Donc, l’interpréteur python 2 est en version 2.7.3.

Ensuite, il faut créer le fichier ~/brouillons/test.py à l’aide de cette commande:

« nano ~/brouillons/test.py »

Ensuite, sur l’éditeur de texte , il faut taper le code source suivant:

testpy

Et on éxécute le code:

testexec

p3

L’interpréteur python 3 est en version 3.2.3.

Il faut ensuite créer le fichier ~/brouillons/testPy3.py.

Voici le code source de ce fichier :

testpy3

Et on éxécute ce code:

test3exec

Interpréteur PHP

Nous avons besoin d’un interpréteur PHP pour éxécuter des scripts PHP.

Donc, pour installer l’interpreteur PHP CLI , il faut taper la commande suivante:

« apt-get install php5-cli »

Pour afficher la version de PHP-cli , il faut taper la commande:

« php5 –version »

Ensuite, il faut crée un fichier pour tester le fonctionnement de l’interpreteur PHP.

Donc on le crée à l’aide de cette commande:

« nano ~/brouillons/test.php »

Et dans ce fichier, nous allons taper ce code:

testphp

Serveur WEB

Pour installer le serveur HTTP Apache 2 , il suffit de taper cette commande:

« apt-get install apache2 »

Tous les fichiers des pages web sont stockés dans /var/www.

Donc, on crée le fichier xilim.html dont le code source est le suivant:

xilimhtml

et on accède à la page depuis le navigateur:

xilimnav

 

Installation d’une interface graphique

Nous  installons l’interface graphique Xfce4 à l’aide de cette commande :

« apt-get install xfce4 »

Pour lancer l’interface graphique, il faut taper startx &

Outils de dépannage orientés réseau

Pour installer les diffèrents outils de dépannage orientés réseau , il suffit de taper cette commande:

« apt-get install nmap tcpdump wireshark tshark  »

Installation des VMTools

Pour installer les VMTools , il faut aller dans le menu VM , Install VMware Tools . Le dique virtuel des VMTools va etre chargé dans la machine virtuelle.

VMTools Menu.png

Il faut donc ensuite monter le disque virtuel : « mount  /media/cdrom »

Il faut ensuite extraire les fichiers de l’archive dans un dossier :

« tar xzvf /mnt/cdrom/VMwareTools-x.x.x-xxxx.tar.gz  -C /usr/local/src »

Il faut aller dans le dossier de décompression des VMTools :

« cd /usr/local/src »

Et enfin , il faut installer les VMTools : « ./vmware-install.pl -d »

installation Java development kit

Pour décompresser le fichier dans le dossier /opt , il faut taper cette commande:

« tar -zxvf jdk7……tar.gz -C /opt »

Et pour renommer:

« mv jdk/  jdk7/ »

Pour connaitre la version de java , il faut taper:

« java  –version »  et « javac –version »

javac permettra de compiler les fichier .java et java permettra de les exécuter.

Installation IDE Eclipse 

Pour décompresser le fichier dans le dossier /opt , il faut taper cette commande:

« tar -zxvf eclipse……tar.gz -C /opt »