Administration système UNIX tutorial gratuit


Télécharger Administration système UNIX tutorial gratuit

★★★★★★★★★★4 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


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

sort [-n] [-r] [fichier]

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/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/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]

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é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 différentes techniques d’installation (sources, binaires) gestion des dépendances différents gestionnaires de paquetages (formats tgz, rpm, deb) et outils associés (apt, yum, up2date...). problèmes de mises à jour (actualisation, sécurité)

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



201