Cours 1 : Introduction au syst`eme UNIX
Le Cocq Michel lecocq@ipgp.fr
Licence Pro SIL
Rappel plan g´
en´
eral
Introduction au syst`eme UNIX - ssh
Services, processus, signaux Scripting shell
Applications Client/Serveur et Web Serveurs et configuration
1 Pr´esentation g´en´erale UNIX
2 Commandes de base
3 Utilisateurs, groupes et droits
4 Installation de Linux
Qu’est-ce qu’un syst`
eme d’exploitation ?
Le syst`eme d’exploitation (Operating System, ou OS) d’un ordinateur est
un programme qui assure la gestion du mat´eriel et d´efini des m´ecanismes
et API pour le fonctionnement des applications :
acc`es aux ressources (processeur, m´emoire, fichiers, p´eriph´eriques); gestion des utilisateurs;
interfaces homme-machine (parfois). API == Application Programmer Interface
Terminologie:
Microsoft Windows (NT, XP, 2000, 2003, ...) Macintosh OS X (unix)
Sun Solaris (unix) HP/UX (ancien, unix) GNU/Linux (unix)
Historique d’UNIX
Un vieux syst`eme moderne !1969: premi`ere version d’UNIX (Bell Labs) inspir´ee par MULTICS et
´
ecrite en langage C.
fin 70: variantes “Syst`eme V” (ATT) et BSD (U. Berkeley);
fin 70 - fin 80: unix sur stations de travail (Sun, HP, IBM...); versions
propri´etaires, d´eveloppement d’interfaces graphiques (X11);
ann´ees 90: d´eveloppement de Linux;
ann´ees 2000: survivants: GNU/Linux, Mac OS X, (Free)BSD, Sun
Le noyau
“cœur” du syst`eme d’exploitation.
Code ex´ecut´e en mode “superviseur”: le processeur a acc`es `a toutes les ressources (gestion m´emoire, interruptions, ...).
Responsable :
I du partage des ressources
I de la gestion des utilisateurs et droits d’acc`es I de la gestion des processus
acc`ede aux p´eriph´eriques via des pilotes
d´efini divers m´ecanismes utilis´es par les applications via des appels
syst`emes : communication, synchronisation, acc`es aux fichiers et
p´eriph´eriques...
Terminologie: deux variantes de noyaux
micro-noyaux (MACH, GNU/Hurd) noyaux monolithiques (Linux)
Architecture d’UNIX
Les pilotes (drivers)Interface entre le noyau et les p´eriph´eriques
Les processus
Programmes en cours d’ex´ecution
se partagent la m´emoire et le processeur
sont associ´es `a un utilisateur
forment un arbre : un processus peut lancer des processus fils sont identifi´es par un num´ero, le PID processus identifier
Architecture d’UNIX
Les outilsLogiciels distribu´es avec UNIX, accomplissant les tˆaches de base : acc`es au syst`eme : interpr´eteurs de commandes (shells) documentation (man)
acc`es aux fichiers (ls, mv, cp, rm, mkdir, vi, find...)
gestion des processus (ps, kill, top, ...) administration (par exemple adduser)
Les utilisateurs
Identifi´es par un “login” (pseudonyme), acc`es prot´eg´e par un mot de passe. identifi´e en interne par un num´ero (UID, user identifier)
utilisateurs d´efinis localement (/etc/passwd) ou via un annuaire
partag´e en r´eseau (NIS, LDAP, ...).
chaque processus est associ´e a un utilisateur (droits d’acc`es).
Attributs importants
r´epertoire de connexion (HOME)
shell (interpr´eteur de commandes lanc´e `a la connexion)
Groupes
utilis´es pour d´efinir des cat´egories d’utilisateurs
d´efinis dans /etc/group
Commandes de base
ShellIl existe plusieurs shells: sh, csh, ksh, tcsh (variante de csh) et bash (variante de sh).
Le standard sous Linux est bash.
Fonctionnement en mode interactif
1 afficher l’invite de commande (prompt)
2 attendre que l’utilisateur entre une ligne
3 “d´ecoder” la commande et lancer ´eventuellement les processus
correspondants
4 attendre la fin de l’ex´ecution de la commande, sauf si elle est lanc´ee
en “tˆache de fond” (termine par &)
Chemins
Les fichiers sont d´esign´es par des chemins chemins absolus (commence par /) :
/home/dupont/courrier/lettre damour.txt
chemins relatifs au r´epertoire courant :
toto, ../travail/commande.txt, ./configure Dans les commandes shell :
~ d´esigne le r´epertoire de connexion
Commandes de base
Commandes suppos´ees connuescd, ls, pwd, mkdir, rmdir, rm, cp, mv, man, date, vi, emacs Options `a connaitre : ls [-a] [-l] [-t] [-r] mkdir [-p] rm [-i] [-r] cp [-i] [-r] [-p] mv [-i]
autres commandes utiles
grep motif [fichier]
wc [-c] [-w] [-l] [fichier] head [-n N] [fichier]
tail [-n N] [fichier] tr set1 set2
sort [-n] [-r] [fichier]
cut [-d delim] [-f champs] [fichier]
Dans toutes ces commandes fichier est optionnel : s’il n’est pas sp´ecifi´e,
Commandes de base
Redirections et tubesProcessus
Entrée standard
stdin Sortie standard stdout
stderr
Sortie d’erreur
redirections
commande > fichier
Redirige la sortie vers un fichier. Cr´ee le fichier s’il n’est
pas pr´esent, sinon l’´ecrase.
commande >> fichier
Mˆeme chose mais incr´emente le fichier au lieu de
tubes
com1 | com2 com1 | tee com2
La commande cat
cat [fichier...] recopie le(s) fichier(s) (ou l’entr´ee standard) sur la
sortie standard
Examples
cat toto # affiche toto
cat toto tata # affiche toto puis tata
cat > toto # saisie clavier, ecrit dans toto
cat < toto > tata # copie toto dans tata
cat # affiche tout ce qu’on tape !
Fin de l’entr´ee standard
Commandes de base
Tubescommande1 | commande2
Commande 1 Entrée standard
stdin Sortie standardstdout
stderr Sortie d’erreur Commande 2 stderr Sortie d’erreur Examples ls | wc -l # nombre de fichiers
Mots de passe
On ne conserve jamais un mot de passe “en clair” !
crypt ou md5
mot de passe chaine cryptée
"sesameouvretoi" "$2$GRK/H87LLw$!/ia6!m"
La forme “crypt´ee” est stock´ee dans /etc/shadow, qui n’est lisible que
par root.
S´ecurit´e
attaques de type “dictionnaire” (plus facile si on dispose de la forme crypt´ee)
approches “sociales”: deviner ou amener l’utilisateur `a divulguer son
Utilisateurs et groupes
Fichier /etc/passwd /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh viennet:x:626:103:Emm. V.:/users/viennet:/bin/bashFichier /etc/group /etc/group ftp::50: nobody::99: users::500:adr,ast,ccb,chris,emmanuel local::501:adr,ast,jm2
Utilisateurs et groupes
commandes de base `a connaitresu [-] [utilisateur] passwd [utilisateur] id [utilisateur] who [am i]
gestion des utilisateurs
Ajout d’un utilisateur : # useradd dupond
puis, si on veut lui donner un mot de passe: # passwd dupond
Voir man useradd pour plus d’options.
Le r´epertoire HOME est cr´e´e `a partir de /etc/skel Suppression d’un utilisateur :
userdel dupond
Droits sous UNIX
types de droits : I lecture (r) I ´ecriture (w) I ex´ecution (x)
cat´egories d’utilisateurs vis `a vis d’un fichier :
I propri´etaire (u)
I groupe (g)
I autres (o)
La commande ls -l affiche les droits
-rw-r--r-- 1 viennet a3 1855 2005-11-29 09:39 toto ordre: propri´etaire, groupe, autres
chmod et notation octale
rwxrwxrwx : 9 bits
Example
droits binaire octal
---x 000000001 1
rwx--- 111000000 700
rw-r--r-- 110100100 644
rwxrwxrwx 111111111 777
La commande chmod avec droits en octal
Droits sous UNIX
Cas particuliersDroit x sur les r´epertoires
Indique que l’on peut traverser le r´epertoire. Pour lister son contenu, il faut le droit r.
Droit SUID
Indique que le fichier est ex´ecutable et que le processus s’ex´ecutera avec l’identit´e du propri´etaire du fichier.
Exemple : utilisation de SUID pour acc´eder `a des donn´ees prot´eg´ees $ ls -l /usr/bin/passwd
Une distribution est un ensemble de logiciels configur´es autour du sys`eme
linux. Chaque distribution d´efini son mode de distribution des logiciels
(paquetages).
Principales distributions en 2005
Commerciales:
I RedHat / Fedora, Mandriva, Suse (Novell) (toutes avec RPM)
Contributives:
Installation de logiciels et Gestion de paquetages
diff´erentes techniques d’installation (sources, binaires)
gestion desd´ependances
diff´erents gestionnaires de paquetages (formats tgz, rpm, deb) et
outils associ´es (apt, yum, up2date...).
commande rpm (RedHat)
installation : rpm -i fichier.rpm (ou rpm -Uvh fichier.rpm) suppression : rpm -e nom de paquet
information sur un paquet install´e: rpm -qi nom de paquet
liste des paquets install´es: rpm -qa
commande apt (Debian)
rechercher : apt-cache search packagex
installation : dpkg -i package-name.deb (ou apt-get install package-name)
suppression : apt-get remove package-name
information sur un paquet install´e: apt-cache show package-name