cs_Abderrahmaine
Messages postés9Date d'inscriptionmercredi 9 septembre 2009StatutMembreDernière intervention 9 avril 2011
-
14 janv. 2010 à 17:22
cs_Abderrahmaine
Messages postés9Date d'inscriptionmercredi 9 septembre 2009StatutMembreDernière intervention 9 avril 2011
-
15 janv. 2010 à 15:44
Mini Remote Shell (mrsh) est une application client-serveur permettant d’exécuter des
commandes sur une machine distante. Les commandes sont lancées à partir d’une application
installée sur une machine cliente (mrsh client). Ces commandes doivent être exécutées sur le
serveur (mrsh serveur – mrshd –) installé sur la machine distante. Après l’exécution, Le
résultat est renvoyé au client.
1- Le Mini Remote Shell Demon (mrshd)
Le mrshd est la partie serveur de l’application, elle doit assurer :
a) Le control des droits d’accès
Le démon mrshd possède un fichier de configuration (/etc/mrshd.conf). Ce fichier
spécifie :
- Des adresses IP (Internet Protocol) et des noms des machines clientes
autorisées à se connecter sur le serveur (Authorized_Hosts)
o Exemple :
Authorized_Hosts 10.0.0.1,hoste2 ,192.168.15.0/24
- Le fichier des utilisateurs de mrsh (Users_file)
o Exemple :
Users_file /etc/rmsh_users
Le format du fichier /etc/rmsh_users est le suivant :
Login : mot de passe : répertoire de travail
b) L’exécution des commandes envoyées par les shells clients.
Après la phase Autorisation et Authentification, Le demon mrshd doit être capable
d’exécuter les commandes des clients
2- Le Mini Remote Shell (mrsh)
Le programme mrsh est la partie client de l’application. Cette application permet
de s’authentifier auprès d’un serveur distant en utilisant la commande interne
« open » (Syntaxe : open hoste1|@ip).
On note que l’utilisateur peut s’authentifier sur plusieurs serveurs à la fois. La
commande « lsrhosts » affiche la liste des serveurs auxquels l’application est
connectée.
Après la phase d’authentification, l’utilisateur peut seulement manipuler les
fichiers et les répertoires appartenant à l’arborescence dont l’origine est son répertoire
du travail.
3- Les commandes implémentées :
L’application mrsh doit implémenter les commandes internes suivantes:
- ps
Une commande permettant de lister les processus sous le contrôle du
rmsh courant.
- pshistory
Une commande permettant d’afficher la liste des commandes lancées,
leurs numéros, leurs PID, leurs PPID et les @ip des serveurs associés.
- r_status
Une commande permettant d’obtenir le code de retour de la dernière
commande exécutée.
- execute ( comande)
Une commande permettant de lancer une commande en arrière plan.
- redirection (Entrée std, Sortie std, Sortie std d’erreur,commande)
Une commande permettant de lancer une commande dont les
entrées/sorties sont redirigées.
On note que les entrées/sorties peuvent être :
- Des fichiers locaux désignés par leurs chemins absolus ou
relatifs.
- Des fichiers distants selon le format @host|ip :file ( Le fichier
file sur le serveur host| @ip.
- pipe ( cmd1,cmd2)
Une commande permettant de lancer deux commandes communiquant
par un tube anonyme.
- alias (nom_alias, cmd)
Une commande permettant de créer l’alias « nom_alias » sur la
commande cmd. On note que l’ordre de priorité des commandes : les
commandes internes, les alias puis les commandes externes.
Les commandes externes à implémenter sont les suivantes :
- r_pwd @host
Une commande permettant d’afficher le répertoire courant sur host.
- r_cd @host répertoire
Une commande permettant de changer le répertoire courant sur host.
- r_mkdir @host répertoire
Une commande permettant de créer un répertoire sur host.
- r_touch @host file
Une commande permettant de créer un fichier file sur host.
- r_rmdir @host répertoire
Une commande permettant de supprimer un répertoire sur host.
- r_remove @host file
Une commande permettant de supprimer le fichier file sur host.
- r_cp @host1 : file1 @host2: file2
Une commande permettant de copier le fichier file1 sur host1 dans file2
sur host2
- r_ls [ @host1 : repertoire]
Une commande permettant qui liste le contenu du répertoire courant.
Sans argument, r_ls liste le contenant du répertoire courant.
- r_mv @host1 : file1 @host2: file2
Une commande permettant de déplacer le fichier file1 sur host1 vers
file2 sur host2
- r_find @host : repertoire –name name_file
Une commande permettant de trouver tous les fichiers dont le nom est
name_file sous l’arborescence répertoire sur host.
- r_find @host1 : repertoire –newer @host2:file
Une commande permettant de trouver tous les fichiers sous
l’arborescence répertoire sur host1 plus récent que le fichier file sur
host2.
- r_find @host1 : repertoire – bigger @host2:file
Une commande permettant de trouver tous les fichiers sous
l’arborescence répertoire sur host1 dont la taille est plus grande que le
fichier file sur host2.
- r_cat @host1 :file1 @host2 :file2 …
Une commande permettant d’afficher sur la sortie standard le contenue
du file1 sur host1, file sur host2…
- r_more [ @host1 :file1 @host2 :file2 …]
Une commande permettant d’afficher page par page le contenue de ces
arguments s’ils sont présents : le contenue du file1 sur host1, file sur
host2…. Si les arguments sont omis r_more affiche page par page son
entrée standard.