Administration système UNIX tutorial gratuit
...
Qu’est-ce qu’un système d’exploitation ?
Le système d’exploitation (Operating System, ou OS) d’un ordinateur est un programme qui assure la gestion du matériel et défini des mécanismes et API pour le fonctionnement des applications : accès aux ressources (processeur, mémoire, fichiers, périphériques); gestion des utilisateurs; interfaces homme-machine (parfois).
API == Application Programmer Interface
Terminologie:
système multi-tˆaches
système multi-utilisateurs
Systèmes répandus:
Microsoft Windows (NT, XP, 2000, 2003, ...)
Macintosh OS X (unix)
Sun Solaris (unix)
HP/UX (ancien, unix)
GNU/Linux (unix)
Cisco IOS (système embarqué: routeurs).
Historique d’UNIX
Un vieux système moderne !
1969: première version d’UNIX (Bell Labs) inspirée par MULTICS et écrite en langage C.
fin 70: variantes “Système V” (ATT) et BSD (U. Berkeley);
fin 70 - fin 80: unix sur stations de travail (Sun, HP, IBM...); versions propriétaires, développement d’interfaces graphiques (X11);
années 90: développement de Linux;
années 2000: survivants: GNU/Linux, Mac OS X, (Free)BSD, Sun Solaris.
Architecture d’UNIX
Le noyau
“cœur” du système d’exploitation.
Code exécuté en mode “superviseur”: le processeur a accès à toutes les ressources (gestion mémoire, interruptions, ...).
Responsable :
I du partage des ressources
I de la gestion des utilisateurs et droits d’accès
I de la gestion des processus accède aux périphériques via des pilotes défini divers mécanismes utilisés par les applications via des appels systèmes : communication, synchronisation, accès aux fichiers et périphériques...
Terminologie: deux variantes de noyaux
micro-noyaux (MACH, GNU/Hurd)
noyaux monolithiques (Linux)
Les pilotes (drivers)
Interface entre le noyau et les périphériques
Sous Linux, correspondent à des modules
Les processus
Programmes en cours d’exécution se partagent la mémoire et le processeur sont associés à un utilisateur forment un arbre : un processus peut lancer des processus fils sont identifiés par un numéro, le PID processus identifier
Les outils
Logiciels distribués avec UNIX, accomplissant les tâches de base : accès au système : interpréteurs de commandes (shells) documentation (man)
accès aux fichiers (ls, mv, cp, rm, mkdir, vi, find...)
gestion des processus (ps, kill, top, ...)
administration (par exemple adduser)
développement de logiciels (cc, lex, ...)
Les utilisateurs
Identifiés par un “login” (pseudonyme), accès protégé par un mot de passe.
identifié en interne par un numéro (UID, user identifier)
utilisateurs définis localement (/etc/passwd) ou via un annuaire
partagé en réseau (NIS, LDAP, ...).
chaque processus est associé a un utilisateur (droits d’accès).
Attributs importants
répertoire de connexion (HOME)
shell (interpréteur de commandes lancé à la connexion)
Groupes
utilisés pour définir des catégories d’utilisateurs
définis dans /etc/group
chaque fichier appartient à un utilisateur et un groupe
Shell
Il 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écoder” la commande et lancer éventuellement les processus correspondants
4 attendre la fin de l’exécution de la commande, sauf si elle est lancée en “tâche de fond” (termine par &)
5 recommencer à l’étape 1.
Script
Le shell interprète les commandes regroupées dans un fichier (script).
Chemins
Les fichiers sont désignés par des chemins chemins absolus (commence par /) :
/home/dupont/courrier/lettre damour.txt
chemins relatifs au répertoire courant :
toto, ../travail/commande.txt, ./configure
Dans les commandes shell :
~ désigne le répertoire de connexion
~toto désigne le répertoire de connexion de l’utilisateur toto
Commandes supposées connues
cd, ls, pwd, mkdir, rmdir, rm, cp, mv, man, date, vi, emacs
Options à 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
cut [-d delim] [-f champs] [fichier]
Dans toutes ces commandes fichier est optionnel : s’il n’est pas spécifié, la commande lit les données sur son entrée standard (le clavier).
...
La commande cat
cat [fichier...] recopie le(s) fichier(s) (ou l’entrée 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ée standard
lorsqu’une commande lit sur l’entrée standard, terminer par CTRL-d !
...
Utilisateurs et groupes
Mots de passe
On ne conserve jamais un mot de passe “en clair” !
mot de passe crypt ou md5 chaine cryptée
"sesameouvretoi" "$2$GRK/H87LLw$!/ia6!m"
La forme “cryptée” est stockée dans /etc/shadow, qui n’est lisible que par root.
Sécurité
attaques de type “dictionnaire” (plus facile si on dispose de la forme cryptée)
approches “sociales”: deviner ou amener l’utilisateur à divulguer son mot de passe...
Fichier /etc/passw
/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/bash
Fichier /etc/group
/etc/group
ftp::50:
nobody::99:
users::500:adr,ast,ccb,chris,emmanuel
local::501:adr,ast,jm2
commandes de base à connaitre
su [-] [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épertoire HOME est créé à partir de /etc/skel
Suppression d’un utilisateur :
userdel dupond (ne supprime pas le HOME sauf si option -r)
Droits sous UNIX
types de droits :
I lecture (r)
I écriture (w)
I exécution (x) catégories d’utilisateurs vis à vis d’un fichier :
I propriétaire (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étaire, groupe, autres
chown [-R] propriétaire[:groupe] fichier...
chgrp [-R] groupe fichier...
chmod [-R] categorie+-droit fichier...
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 chmod 777 fichier
Cas particuliers
Droit x sur les répertoires
Indique que l’on peut traverser le répertoire. Pour lister son contenu, il faut le droit r.
Droit SUID
Indique que le fichier est exécutable et que le processus s’exécutera avec l’identité du propriétaire du fichier.
Exemple : utilisation de SUID pour accéder à des données protégées
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 26616 2005-05-18 08:33 /usr/bin/passwd
Droit t sur les répertoires : Sticky Bit
Tout le monde peux écrire, les fichiers ne peuvent ˆetre effacés que par leur propriétaire.
Distributions Linux
Une distribution est un ensemble de logiciels configurés autour du sysème linux. Chaque distribution défini son mode de distribution des logiciels (paquetages).
Principales distributions en 2005
Commerciales:
I RedHat / Fedora, Mandriva, Suse (Novell) (toutes avec RPM)
Contributives:
I Debian, Ubuntu, gentoo
Installation de logiciels et Gestion de paquetages
commande rpm (RedHat)
installation : rpm -i fichier.rpm (ou rpm -Uvh fichier.rpm)
suppression : rpm -e nom de paquet
information sur un paquet installé: rpm -qi nom de paquet
liste des paquets installés: 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é: apt-cache show package-name
liste des paquets installés: dpkg -l