Maxime CHAMBREUIL - Samy FOUILLEUX - ASI3 - Année 2001 / 2002

SE : TP7

Objectifs:

I / Comparaison de Windows 98 et Linux

1 ) Ou est situé le noyau ? Est-il protégé...

Le noyau de win98 est composé de C:/windows/system32/io.sys, C:/windows/msdos.sys et C:/windows/system32/krnl386. On peut modifier et déplacer ses 3 fichiers, il n'y a donc aucune sécurité.

Le noyau de Linux se trouve dans le fichier /boot/vmlinuz avec tous les droits d'accés et root est son propriétaire.

2 ) Où est l'interpréteur de commande du SE ? Quelles sont ses fonctionnalités ? En existe-t-il d'autres ?

Sous windows, l'interpréteur de commande par défaut, c'est le fichier command.com. Il se trouve dans le répertoire C:/windows/system32/. Il n'y a pas d'autres interpréteurs de commandes sous win98. Les fonctionnalités de Command sont les opérations sur les fichiers ou les répertoires (déplacement, création, effacement, etc...) et le lancement de quelques applications : format, fdisk, notepad.

Sous Linux, l'interpréteur de commande se trouve sous /bin/bash/. Voici une liste de tous les interpréteurs de commandes disponibles avec leurs fonctionnalités : annexe.html#com

3 ) Quels sont les utilitaires présents avec le SE ?

Avec win98, sont fournis des éditeurs de texte : Notepad, Wordpad; des éditeurs d'images : paint, Imaging; une calculatrice; des jeux : démineur, solitaire; des utilitaires système : Vumètre, défragmenteur de disque; des applications multimédia : MediaRack, WindowsMediaPlayer; et des applications réseau : navigateur web, observateur réseau. Win98 ne présente aucun utilitaire de programmation.

Avec Linux, sont fournis kwrite, emacs, kword (edit de texte); Gimp(Image); une calculatrice; Mozilla, Kmail, gftp(util reseau); Kdevelop (util programmation);KdeMediaPlayer, CD Player (Multimedia).

4 ) Comment crée-t-on une disquette de démarrage ? Que contient cette disquette ?

Pour créer une disquette de démarrage sous windows98, dans Panneau de configuration puis Ajout/Suppression de programmes, on choisit l'onglet Disquette de démarrage et on clique sur le bouton Créer une disquette de démarrage. Cette disquette contient alors :

AUTOEXEC.BAT
CONFIG.SYS
SETRAMD.BAT
LISEZMOI.TXT
FINDRAMD.EXE
RAMDRIVE.SYS
ASPI4DOS.SYS
BTCDROM.SYS
ASPICD.SYS
BTDOSM.SYS
ASPI2DOS.SYS
ASPI8DOS.SYS
ASPI8U2.SYS
FLASHPT.SYS
EXTRACT.EXE
FDISK.EXE
DRVSPACE.BIN
COMMAND.COM
HIMEM.SYS
OAKCDROM.SYS
EBD.CAB
DISPLAY.SYS
COUNTRY.SYS
EGA.CPI
MODE.COM
KEYBOARD.SYS
KEYB.COM

qui permet de booter sur la disquette et démarrer le système avec ou sans prise en charge du CD-ROM, de modifier les partitions du disque (fdisk.exe), etc...

Sous Linux, lors de l''installation du sytème, on nous propose de créer une disquette de démarrage. Celle-ci contient le noyau minimal pour sa réinstallation, le système de fichiers,etc...vous trouverez quelques explications en anglais ici.

II / Initiation aux commande de bases d'Unix

1 ) Connexion sur le serveur

[ ] $ telnet asi
login : mchambre
password :
[mchambre@servasi mchambre]$

2 ) Votre environnement

$more /etc/passwd

Dans le champ 1, on a le login de tous les utilisateurs; le champ 6 indique le chemin absolu de son répertoire-compte et le 7 indique son interpréteur de commandes. Cependant la ligne se présente de la façon suivante :

login : X : id : gid : description : localisation du compte : interpréteur

Un utilisateur est la "id"-ième personne à avoir ouvert un compte et elle appartient au groupe caractérisé par le numéro "gid". La description correspond au nom et prénom de l'utilisateur.

$whoami
mchambre

Cette commande renvoie le login de connexion de l'utilisateur.

$who am i

servasi!mchambre pts/7 Nov 12 21:03

Donc, je me suis connecté sur servasi le 12 novembre à 21h03. pts/7 a un rapport avec la connection puisque le numéro change avec le nombre de connection : en lançant plusieurs telnet sur servasi, il m'a attribué un nouveau numéro pour chaque connection.

$who

arogozan pts/3    Nov  9 12:20

epichon  pts/4    Nov 12 20:49

mchambre pts/7    Nov 12 21:03

croussea pts/0    Nov 12 16:21

mchambre pts/8    Nov 12 21:34

jfguerne pts/2    Nov 12 18:31

Cette commande renvoie tous les utilisateurs connectés sur asi.

$quota

Disk quotas for user mchambre (uid 596): none 

indique l'espace disque alloué pour l'utilisateur. "none" ne signifie pas que je n'ai pas d'espace mais que je ne suis pas limité.

$man quota

NAME

       quota - display disk usage and limits



SYNOPSIS

       quota [ -guv | q ]

       quota [ -uv | q ] user

       quota [ -gv | q ] group



DESCRIPTION

       Quota  displays  users' disk usage and limits.  By default

       only the user quotas are printed.



       -g     Print group quotas for the group of which the  user

              is a member.  The optional



       -u     flag is equivalent to the default.



       -v     will display quotas on filesystems where no storage

              is allocated.  
affiche le manuel d'utilisation de la commande spécifiée, ici "quota".

3 ) La ligne de commande

Grâce à "more /etc/passwd", on sait que j'utilise "bash" comme interpréteur de commandes.

$history

  475  who

  476  man who

  477  q

  478  clear

  479  quota

  480  man quota

  481  clear

  482  history

affiche toutes les commandes tapées par l'utilisateur depuis la création de son compte.

$!!

Le résultat est le même que la commande précédente. "!!" exécute donc la dernière commande tapée.

$!5

telnet asi.insa-rouen.fr

Trying 194.254.15.75...

Connected to servasi.insa-rouen.fr.

Escape character is '^]'.



Red Hat Linux release 7.0 (Guinness)

Kernel 2.2.16-22smp on a 2-processor i686

login:     

exécute la 5ème commande de l'utilisateur depuis la création de son compte.

$!ma

man quota   

exécute la derniére commande commençant par "ma".

$!-50

Matlab



                              < M A T L A B >

                  Copyright 1984-1999 The MathWorks, Inc.

                        Version 5.3.1.29215a (R11.1)

                                Oct  6 1999  

exécute la 50-ème commande en remontant l'historique.

$alias h=history
$h

"h" devient un raccourci vers la commande "history".

En tapant Ctrl -R, on obtient :

(reverse-i-search)`':   m

l'annonce devient alors : "(reverse-i-search)`m': man whoami" et la commande "man whoami" s'exécute.

$ls -l -a
$wc !*


wc -a -l                        

retourne les arguments de la dernière ligne de commande.

$ls -l -a
$wc !$

wc -a    
retourne le dernier argument de la dernière ligne de commande.

4 ) Quelques commandes de base

$du

3644    ./mydos/dosemu

5068    ./mydos

4       ./Autostart

28      ./Templates

18688   .

renvoie l'espace disque occupé par chaque répertoire et la taille totale occupé par le compte, ici 18 688 blocks de 512 octets.

$df

Filesystem           1k-blocks      Used Available Use% Mounted on

/dev/rd/c0d0p1         3099260   2737760    204068  94% /

/dev/rd/c0d0p7         1818352   1604924    121056  93% /disk2

/dev/rd/c0d0p2        41326992  37514808   1712892  96% /home

/dev/rd/c0d0p3         6198436   2240484   3643080  39% /usr/local        

renvoie la taille de toutes les partitions du disque, avec leurs utilisation, la place disponible, le système de fichier, etc...En faisant man df, il n'y a qu'une description de la commande mais pas d'option; par contre avec df --help, on a les options mais j'en ai pas trouvées d'intéressantes et de plus lisibles.

$ls

ASI.3.1    Bureau   Templates   lasm            mydos   office52

Autostart  Desktop  Temporaire  mail.signature  nsmail  public_html  

On obtient les répertoires (non-cachés) et les fichiers du répertoire courant. L'option "-a" permet d'avoir l'affichage de tous les répertoires et des fichiers. L'option "-l" nous indique les droits d'accés, le propriétaire et son groupe, la taille et la date de création des répertoires et des fichiers.

$cd ..
$pwd

/home/etud/asi01

"cd .." permet de monter d'un répertoire dans l'arborescence et "pwd" nous indique le chemin absolu du répertoire courant, ici le groupe asi01.

$cd ..
$pwd

/home/etud   

Nous aurions exécuter le "cd .." sans taper toute la commande grâce à "alias c='cd ..' par exemple.

$cd
$pwd

/home/etud/asi01/mchambre 

Cette commande permet de revenir au répertoire-compte de l'utilisateur.

$cd /
$pwd

/  

revient au répertoire racine : le répertoire le plus élevé dans l'arborescence.

$which ls

alias ls='ls --color=tty'

        /bin/ls   

affiche les options enregistrées d'une commande et la localisation de cette commande dans l'arborescence.

Voici 3 séries de commandes pour arriver dans le répertoire /var/spool/mail à partir du répertoire /tmp :

1ère solution : cd /var/spool/mail

2ème solution : cd ../var/spool/mail

3ème solution :

cd ..
cd var
cd spool
cd mail

Pour obtenir la liste des fichiers qui commencent par m, on utilise :

$ ls m*

mbrisou   mchambre  mdavid   mhautreu  mmaingue

mbrugier  mclave    mdesert  mlehoai   msoares

$ cd /home/etud/asi01/sfouille

et il ne se passe rien puisqu'on a les droits d'accés.

5 ) Manipulation de fichiers et de répertoires

$cat

$cp fichier source fichier destination

copie le fichier source dans le répertoire courant sous le nom fichier de destination.

$mv fichier source destination

renomme le fichier source en destination. Si destination est un dossier du répertoire courant, le fichier source est déplacé dans le répertoire destination avec le même nom.

$rm fichier

efface le fichier, qui doit se trouver dans le répertoire courant.

$mkdir répertoire

crée un dossier intitulé "répertoire" dans le répertoire courant.

$rmdir répertoire

efface le dossier intitulé "répertoire" si celui-ci est vide.

[mchambre@servasi mchambre]$ mkdir tp7

[mchambre@servasi mchambre]$ mkdir tp7bis

[mchambre@servasi mchambre]$ cp /etc/passwd tp7/PASS

[mchambre@servasi mchambre]$ cd tp7

[mchambre@servasi tp7]$ cp PASS ../tp7bis/PASS

[mchambre@servasi tp7]$ cd

[mchambre@servasi mchambre]$ quota

Disk quotas for user mchambre (uid 596): none

[mchambre@servasi mchambre]$ ls tp7*

tp7:

PASS



tp7bis:

PASS

[mchambre@servasi mchambre]$ rm tp7bis/PASS

[mchambre@servasi mchambre]$ rmdir tp7bis 

6 ) Redirections

$ls -alh > res
$ls -alh

drwx------    3 mchambre asi01        4.0k sep 14 16:27 nsmail

drwx------    3 mchambre asi01        4.0k sep 11 14:50 office52

drwx-----x    5 mchambre asi01        4.0k nov 14 18:36 public_html

-rw-r--r--    1 mchambre asi01        2.9k nov 14 18:42 res 

J'ai un nouveau fichier "res" en plus dans mon répertoire courant.

$more res

total 176k

drwx-----x   24 mchambre asi01        4.0k nov 14 18:46 .

drwxr-xr-x   31 root     root         4.0k sep 25 07:57 ..

lrwxrwxrwx    1 mchambre asi01          62 nov 14 09:31 .DCOPserver_asi1241.insa

-rouen.fr -> /home/etud/asi01/mchambre/.DCOPserver_asi1241.insa-rouen.fr_:0

-rwx------    1 mchambre asi01          32 nov 14 09:31 .MCOP-random-seed

...

drwx------    3 mchambre asi01        4.0k sep 14 16:27 nsmail

drwx------    3 mchambre asi01        4.0k sep 11 14:50 office52

drwx-----x    5 mchambre asi01        4.0k nov 14 18:36 public_html

-rw-r--r--    1 mchambre asi01           0 nov 14 18:46 res  

le fichier "res" contient l'affichage de la commande tapée précédemment, ici "ls -alh". On remarque qu'il compte le fichier de destination mais sa taille est nulle.

$df >>res
$more res

drwx------    3 mchambre asi01        4.0k sep 14 16:27 nsmail

drwx------    3 mchambre asi01        4.0k sep 11 14:50 office52

drwx-----x    5 mchambre asi01        4.0k nov 14 18:36 public_html

-rw-r--r--    1 mchambre asi01           0 nov 14 18:46 res

Filesystem           1k-blocks      Used Available Use% Mounted on

/dev/rd/c0d0p1         3099260   2759984    181844  94% /

/dev/rd/c0d0p7         1818352   1604924    121056  93% /disk2

/dev/rd/c0d0p2        41326992  35661300   3566400  91% /home

/dev/rd/c0d0p3         6198436   2250484   3633080  39% /usr/local 

">>" concaténe le résultat de la commande (ici "df") dans le fichier res, c'est-à-dire qu'il ajoute le résultat de la commande à la fin du fichier sans toucher au contenu initial.

">" efface le contenu du fichier de destination et écrit le résultat de la commande à la place.

7 ) Manipulation de fichiers texte

[mchambre@servasi tp7]$ grep mchambre PASS >moi

[mchambre@servasi tp7]$ more moi

mchambre:x:596:516:CHAMBREUIL Maxime:/home/etud/asi01/mchambre:/bin/bash

[mchambre@servasi tp7]$ cut -d: -f 5 moi >mon_nom

[mchambre@servasi tp7]$ more mon_nom

CHAMBREUIL Maxime 
[mchambre@servasi tp7]$ head -n 7 PASS>debfin

[mchambre@servasi tp7]$ tail -n 7 PASS>>debfin

[mchambre@servasi tp7]$ sort debfin -r -o debfin

[mchambre@servasi tp7]$ more debfin

vguigue:x:615:502:GUIGUE Vincent:/home/admasi/vguigue:/bin/bash

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

sdelimi:x:616:502:DELIMI Samir:/home/admasi/sdelimi:/bin/bash

root:x:0:0:root:/root:/bin/bash

mbourkan:x:1526:503::/home/invite/mbourkan:/bin/bash

lp:x:4:7:lp:/var/spool/lpd:

jkurzman:x:614:516:KURZMANN Jurgen:/home/etud/asi01/jkurzman:/bin/bash

flahjom:x:1524:503::/home/invite/flahjom:/bin/bash

daemon:x:2:2:daemon:/sbin:

bin:x:1:1:bin:/bin:

asartore:x:1523:511:Sartorelli Alessandro:/home/etud/asi00/:/bin/bash

aezzine:x:1525:503::/home/invite/aezzine:/bin/bash

adm:x:3:4:adm:/var/adm:  

8 ) Questions subsidiaires

Pour savoir si le mot de passe est bon lors de la connexion d'un utilisateur, le SE va lire dans le fichier /etc/passwd à la ligne du login rentré précédemment et compare le mot de passe crypté du fichier avec le mot de passe crypté rentré par l'utilisateur.

Pour retrouver les alias créés, il faut les rajouter au PATH dans le fichier .bashrc qui se trouve dans le répertoire-compte de chaque utilisateur.

Le répertoire /var/spool/mail contient tous les comptes mails.

Pour sécuriser la commande rm et demander une confirmation, on rajoute " alias rm='rm -i' " au fichier .bashrc.

* remplace une chaine de caractère qui peut être vide.

? remplace un seul caractère.

[abcd…] remplace un caractère quelconque parmi les caractères spécifiés.

[!abcd…] remplace un caractère quelconque sauf ceux spécifiés.

~nom/répertoire est un raccourci qui permet d'indiquer le chemin d'accés par rapport à l'utilisateur au lieu de taper le chemin absolu. Par exemple, en étant sous la racine et en tapant "cd ~mchambre/ASI.3.1", j'arrive directement dans le répertoire ASI.3.1 !

~+ renvoie le répertoire de travail en cours.

~- renvoie le répertoire de travail précédent.

La commande "ls -al" nous indique pour chaque répertoire (caché ou pas) et fichier du répertoire courant : si c'est un répertoire ou pas, les droits d'accés, le propriétaire et son groupe, la taille du fichier ou du répertoire (mais pas de son contenu), la date et l'heure de dernière modification et enfin l'intitulé.

Maxime CHAMBREUIL - Samy FOUILLEUX - ASI3 - Année 2001 / 2002